{
  "format": "ghostclickai.node-catalog",
  "version": 1,
  "appCompatibilityBaseline": "1.0.0",
  "sourceState": "development-candidate",
  "notice": "源码目录投影，不构成所有节点的运行验收证明。端口索引从0开始；动态端口以实际节点配置的schema为准；连线只传值。多个主模式字段独立展开，不做组合枚举；选择预设时其他主字段采用默认值。",
  "count": 193,
  "nodes": [
    {
      "id": "audio.generate_subtitle",
      "title": "字幕生成",
      "englishTitle": "Subtitle",
      "categoryId": "catalog.testing",
      "description": "识别音频中的语音并生成带时间信息的字幕。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "vadStrength",
          "label": "VAD Strength",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "maxSubtitleDuration",
          "label": "Max Subtitle Duration",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "subtitle",
          "label": "Subtitle",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "audio.piper_tts",
      "title": "字幕转语音",
      "englishTitle": "Subtitle To Audio",
      "categoryId": "catalog.testing",
      "description": "使用语音模型把输入文本生成为音频。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "subtitle",
          "label": "Subtitle",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "model",
          "label": "Model",
          "typeId": "onnx_model",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "audio.qwen3tts",
      "title": "Qwen3 语音",
      "englishTitle": "Qwen3-TTS",
      "categoryId": "catalog.testing",
      "description": "使用 Qwen3 语音模型把输入文本生成为音频。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "reference_audio",
          "label": "Ref Audio",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "reference_text",
          "label": "Ref Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "audio.remove_background_music",
      "title": "去除背景音乐",
      "englishTitle": "Remove Background Music",
      "categoryId": "catalog.testing",
      "description": "从输入音频中分离背景音乐，保留人声内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 2,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "audio.remove_vocals",
      "title": "去除人声",
      "englishTitle": "Remove Vocals",
      "categoryId": "catalog.testing",
      "description": "从输入音频中分离人声，输出去除人声后的音频。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 2,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "basope.integer_math",
      "title": "整数运算",
      "englishTitle": "Integer Math",
      "categoryId": "catalog.operation",
      "description": "对两个整数进行相加、相减、相乘或除余。除余分别输出整数商和余数；输入与计算均保持整数精度。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "Operand 1",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "right",
          "label": "Operand 2",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "结果",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "remainder",
          "label": "余数",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "operation": "add",
        "values": [
          0,
          0
        ]
      },
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide_with_remainder",
              "label": "除余",
              "englishLabel": "Quotient & remainder"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "整数运算-相加",
          "englishTitle": "Integer Math - Add",
          "searchTerms": [
            "整数",
            "整数运算",
            "相加",
            "加法",
            "integer",
            "int",
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "整数运算-相减",
          "englishTitle": "Integer Math - Subtract",
          "searchTerms": [
            "整数",
            "相减",
            "减法",
            "integer",
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "整数运算-相乘",
          "englishTitle": "Integer Math - Multiply",
          "searchTerms": [
            "整数",
            "相乘",
            "乘法",
            "integer",
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "整数运算-除余",
          "englishTitle": "Integer Math - Quotient & Remainder",
          "searchTerms": [
            "整数",
            "除余",
            "商",
            "余数",
            "带余除法",
            "integer",
            "divrem",
            "quotient",
            "remainder"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide_with_remainder"
          }
        }
      ]
    },
    {
      "id": "basope.k_curve",
      "title": "K曲线",
      "englishTitle": "K Curve",
      "categoryId": "catalog.testing",
      "description": "按所选缓动曲线计算输入进度的 K 值和反向 K 值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "progress",
          "label": "Progress",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Value",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "inverse",
          "label": "Inverse",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "曲线",
          "englishLabel": "Curve",
          "defaultValue": "linear",
          "options": [
            {
              "value": "linear",
              "label": "线性",
              "englishLabel": "Linear"
            },
            {
              "value": "ease_in",
              "label": "缓入",
              "englishLabel": "Ease in"
            },
            {
              "value": "ease_out",
              "label": "缓出",
              "englishLabel": "Ease out"
            },
            {
              "value": "ease_in_out",
              "label": "缓入缓出",
              "englishLabel": "Ease in/out"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "线性",
          "englishTitle": "Linear",
          "searchTerms": [
            "linear"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "linear"
          }
        },
        {
          "title": "缓入",
          "englishTitle": "Ease in",
          "searchTerms": [
            "ease_in"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ease_in"
          }
        },
        {
          "title": "缓出",
          "englishTitle": "Ease out",
          "searchTerms": [
            "ease_out"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ease_out"
          }
        },
        {
          "title": "缓入缓出",
          "englishTitle": "Ease in/out",
          "searchTerms": [
            "ease_in_out"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ease_in_out"
          }
        }
      ]
    },
    {
      "id": "basope.math",
      "title": "浮点运算",
      "englishTitle": "Float Math",
      "categoryId": "catalog.operation",
      "description": "对两个浮点数进行相加、相减、相乘或相除。连接输入时使用连线值，未连接时使用填写的数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "Operand 1",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        },
        {
          "index": 1,
          "id": "right",
          "label": "Operand 2",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "remainder",
          "label": "Remainder",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide",
              "label": "相除",
              "englishLabel": "Divide"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "浮点运算-相加",
          "englishTitle": "Float Math - Add",
          "searchTerms": [
            "浮点运算",
            "Float Math",
            "相加",
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "浮点运算-相减",
          "englishTitle": "Float Math - Subtract",
          "searchTerms": [
            "浮点运算",
            "Float Math",
            "相减",
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "浮点运算-相乘",
          "englishTitle": "Float Math - Multiply",
          "searchTerms": [
            "浮点运算",
            "Float Math",
            "相乘",
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "浮点运算-相除",
          "englishTitle": "Float Math - Divide",
          "searchTerms": [
            "浮点运算",
            "Float Math",
            "相除",
            "divide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide"
          }
        }
      ]
    },
    {
      "id": "basope.number_compare",
      "title": "数值对比",
      "englishTitle": "Number Compare",
      "categoryId": "catalog.operation",
      "description": "对比两个数值并输出布尔结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "Operand 1",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "right",
          "label": "Operand 2",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "比较",
          "englishLabel": "Comparison",
          "defaultValue": "equal",
          "options": [
            {
              "value": "equal",
              "label": "等于",
              "englishLabel": "Equal"
            },
            {
              "value": "greater_than",
              "label": "大于",
              "englishLabel": "Greater than"
            },
            {
              "value": "less_than",
              "label": "小于",
              "englishLabel": "Less than"
            },
            {
              "value": "greater_or_equal",
              "label": "大于等于",
              "englishLabel": "Greater or equal"
            },
            {
              "value": "less_or_equal",
              "label": "小于等于",
              "englishLabel": "Less or equal"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "等于",
          "englishTitle": "Equal",
          "searchTerms": [
            "equal"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "equal"
          }
        },
        {
          "title": "大于",
          "englishTitle": "Greater than",
          "searchTerms": [
            "greater_than"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "greater_than"
          }
        },
        {
          "title": "小于",
          "englishTitle": "Less than",
          "searchTerms": [
            "less_than"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "less_than"
          }
        },
        {
          "title": "大于等于",
          "englishTitle": "Greater or equal",
          "searchTerms": [
            "greater_or_equal"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "greater_or_equal"
          }
        },
        {
          "title": "小于等于",
          "englishTitle": "Less or equal",
          "searchTerms": [
            "less_or_equal"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "less_or_equal"
          }
        }
      ]
    },
    {
      "id": "basope.to_integer",
      "title": "转换为整数",
      "englishTitle": "To Integer",
      "categoryId": "catalog.operation",
      "description": "把浮点数转换为整数，可选择四舍五入、向上取整或向下取整。连接输入时使用连线值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "数值",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "结果",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "mode": "round",
        "value": 0.0
      },
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "取整方式",
          "englishLabel": "Rounding",
          "defaultValue": "round",
          "options": [
            {
              "value": "round",
              "label": "四舍五入",
              "englishLabel": "Round"
            },
            {
              "value": "ceil",
              "label": "向上取整",
              "englishLabel": "Ceiling"
            },
            {
              "value": "floor",
              "label": "向下取整",
              "englishLabel": "Floor"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "转整数-四舍五入",
          "englishTitle": "To Integer - Round",
          "searchTerms": [
            "转整数",
            "四舍五入",
            "round",
            "to integer"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "round"
          }
        },
        {
          "title": "转整数-向上取整",
          "englishTitle": "To Integer - Ceil",
          "searchTerms": [
            "转整数",
            "向上取整",
            "ceil"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ceil"
          }
        },
        {
          "title": "转整数-向下取整",
          "englishTitle": "To Integer - Floor",
          "searchTerms": [
            "转整数",
            "向下取整",
            "floor"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "floor"
          }
        }
      ]
    },
    {
      "id": "basope.vector2_math",
      "title": "二维运算",
      "englishTitle": "2D Math",
      "categoryId": "catalog.operation",
      "description": "对两个固定 2 维向量逐分量进行相加、相减、相乘或相除。连接输入时使用连线值，未连接时使用填写的数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "数值一",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        },
        {
          "index": 1,
          "id": "right",
          "label": "数值二",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "结果",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "operation": "add",
        "left": {
          "x": 0.0,
          "y": 0.0
        },
        "right": {
          "x": 0.0,
          "y": 0.0
        }
      },
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide",
              "label": "相除",
              "englishLabel": "Divide"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "二维运算-相加",
          "englishTitle": "2D Math - Add",
          "searchTerms": [
            "二维运算",
            "2D Math",
            "相加",
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "二维运算-相减",
          "englishTitle": "2D Math - Subtract",
          "searchTerms": [
            "二维运算",
            "2D Math",
            "相减",
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "二维运算-相乘",
          "englishTitle": "2D Math - Multiply",
          "searchTerms": [
            "二维运算",
            "2D Math",
            "相乘",
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "二维运算-相除",
          "englishTitle": "2D Math - Divide",
          "searchTerms": [
            "二维运算",
            "2D Math",
            "相除",
            "divide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide"
          }
        }
      ]
    },
    {
      "id": "basope.vector4_math",
      "title": "四维运算",
      "englishTitle": "4D Math",
      "categoryId": "catalog.operation",
      "description": "对两个固定 4 维向量逐分量进行相加、相减、相乘或相除。连接输入时使用连线值，未连接时使用填写的数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "数值一",
          "typeId": "vector4",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        },
        {
          "index": 1,
          "id": "right",
          "label": "数值二",
          "typeId": "vector4",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "结果",
          "typeId": "vector4",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "operation": "add",
        "left": {
          "x": 0.0,
          "y": 0.0,
          "z": 0.0,
          "w": 0.0
        },
        "right": {
          "x": 0.0,
          "y": 0.0,
          "z": 0.0,
          "w": 0.0
        }
      },
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide",
              "label": "相除",
              "englishLabel": "Divide"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "四维运算-相加",
          "englishTitle": "4D Math - Add",
          "searchTerms": [
            "四维运算",
            "4D Math",
            "相加",
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "四维运算-相减",
          "englishTitle": "4D Math - Subtract",
          "searchTerms": [
            "四维运算",
            "4D Math",
            "相减",
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "四维运算-相乘",
          "englishTitle": "4D Math - Multiply",
          "searchTerms": [
            "四维运算",
            "4D Math",
            "相乘",
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "四维运算-相除",
          "englishTitle": "4D Math - Divide",
          "searchTerms": [
            "四维运算",
            "4D Math",
            "相除",
            "divide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide"
          }
        }
      ]
    },
    {
      "id": "basope.vector_math",
      "title": "三维运算",
      "englishTitle": "3D Math",
      "categoryId": "catalog.operation",
      "description": "对两个固定 3 维向量逐分量进行相加、相减、相乘或相除。连接输入时使用连线值，未连接时使用填写的数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "left",
          "label": "Operand 1",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        },
        {
          "index": 1,
          "id": "right",
          "label": "Operand 2",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedValueTypeIds": [
            "integer",
            "number",
            "vector2",
            "vector3",
            "vector4",
            "visual_media"
          ],
          "acceptedInputPortKeys": [
            "basope.integer_math:remainder",
            "basope.integer_math:result",
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.image_timeline_frame:endFrame",
            "initial.image_timeline_frame:frame",
            "initial.image_timeline_frame:inverseProgress",
            "initial.image_timeline_frame:progress",
            "initial.image_timeline_frame:startFrame",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "model.bake_material_graph:baked_count",
            "model.batch_material_series:failure_count",
            "model.batch_material_series:success_count",
            "model.material_graph_operation:number",
            "model.read_material_graph_slot:number",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "text.string_to_image:a",
            "variable.string_to_number:value"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "vector3",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide",
              "label": "相除",
              "englishLabel": "Divide"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "三维运算-相加",
          "englishTitle": "3D Math - Add",
          "searchTerms": [
            "三维运算",
            "3D Math",
            "相加",
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "三维运算-相减",
          "englishTitle": "3D Math - Subtract",
          "searchTerms": [
            "三维运算",
            "3D Math",
            "相减",
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "三维运算-相乘",
          "englishTitle": "3D Math - Multiply",
          "searchTerms": [
            "三维运算",
            "3D Math",
            "相乘",
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "三维运算-相除",
          "englishTitle": "3D Math - Divide",
          "searchTerms": [
            "三维运算",
            "3D Math",
            "相除",
            "divide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide"
          }
        }
      ]
    },
    {
      "id": "blueprint.meta",
      "title": "蓝图信息",
      "englishTitle": "Blueprint Meta",
      "categoryId": "catalog.tool",
      "description": "编辑当前蓝图的图标、标签与简介。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [],
      "defaultValueOverrides": {}
    },
    {
      "id": "custom.python",
      "title": "自定义 Python",
      "englishTitle": "Custom Python",
      "categoryId": "catalog.tool",
      "description": "用 Python 和 gcbppy 处理输入值并输出结果。变量名仅在节点内有效；双击编辑端口和脚本。脚本拥有本机用户权限，请只运行可信内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "执行",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "customPythonConfig": {
          "inputs": [],
          "outputs": [],
          "script": "import gcbppy\n",
          "timeoutMillis": 30000
        }
      }
    },
    {
      "id": "event.adb_command",
      "title": "ADB 命令",
      "englishTitle": "ADB Command",
      "categoryId": "catalog.macro",
      "description": "向选中的 ADB 安卓实例发送一条 shell 命令，并输出执行结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "command",
          "label": "参数",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "timeout",
          "label": "Seconds",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "percent_point",
          "label": "百分比坐标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "absolute_point",
          "label": "绝对坐标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "Result",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "stdout",
          "label": "Stdout",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "stderr",
          "label": "Stderr",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "exit_code",
          "label": "Exit Code",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "runMode",
          "label": "执行模式",
          "englishLabel": "Run mode",
          "defaultValue": "one_shot",
          "options": [
            {
              "value": "one_shot",
              "label": "一次性命令",
              "englishLabel": "One-shot command"
            },
            {
              "value": "continuous",
              "label": "持续性命令",
              "englishLabel": "Continuous command"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "一次性命令",
          "englishTitle": "One-shot command",
          "searchTerms": [
            "one_shot"
          ],
          "modeIdentity": "runMode",
          "initialValueOverrides": {
            "runMode": "one_shot"
          }
        },
        {
          "title": "持续性命令",
          "englishTitle": "Continuous command",
          "searchTerms": [
            "continuous"
          ],
          "modeIdentity": "runMode",
          "initialValueOverrides": {
            "runMode": "continuous"
          }
        }
      ]
    },
    {
      "id": "event.adb_target_selection",
      "title": "ADB目标选择",
      "englishTitle": "ADB Target Selection",
      "categoryId": "catalog.macro",
      "description": "选择当前运行的 ADB 安卓实例，作为后续自动化节点的操作目标。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "all_selected",
          "label": "全部选中",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "selected_count",
          "label": "已选数量",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "total_count",
          "label": "目标总数",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbRotationQuarterTurns": 0,
        "canvasWidth": 1280,
        "canvasHeight": 720,
        "recognitionArea": {
          "x": 0.05,
          "y": 0.05,
          "w": 0.9,
          "h": 0.9
        },
        "swipeStart": {
          "x": 0.85,
          "y": 0.5
        },
        "swipeEnd": {
          "x": 0.55,
          "y": 0.5
        },
        "startHoldSeconds": 0.5,
        "swipeDurationSeconds": 1.0,
        "endHoldSeconds": 1.0,
        "afterSwipeWaitSeconds": 1.0,
        "pageSimilarityThreshold": 0.995,
        "targets": []
      }
    },
    {
      "id": "event.android_instance_visibility",
      "title": "安卓实例 隐藏/显示",
      "englishTitle": "Android Instance Visibility",
      "categoryId": "catalog.automation",
      "description": "按 android: 实例信息隐藏或显示指定安卓实例窗口，不切换全局老板键；重复设置幂等，不影响其他实例。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "执行",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "状态",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "target": "",
        "operation": "hide"
      },
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "操作",
          "englishLabel": "Operation",
          "defaultValue": "hide",
          "options": [
            {
              "value": "hide",
              "label": "隐藏",
              "englishLabel": "Hide"
            },
            {
              "value": "show",
              "label": "显示",
              "englishLabel": "Show"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "隐藏",
          "englishTitle": "Hide",
          "searchTerms": [
            "hide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "hide"
          }
        },
        {
          "title": "显示",
          "englishTitle": "Show",
          "searchTerms": [
            "show"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "show"
          }
        }
      ]
    },
    {
      "id": "event.automation_click",
      "title": "点击",
      "englishTitle": "Click",
      "categoryId": "catalog.macro",
      "description": "按坐标、图像、OCR 或 ONNX 找到目标后单击、双击或长按，支持 PC、窗口与 ADB。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "inputTarget",
          "label": "输入目标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "ocrText",
          "label": "目标文字（OCR）",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "percentagePoint",
          "label": "百分比坐标（0～1）",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "position",
          "label": "绝对坐标（像素）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "x",
          "label": "X（像素）",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "y",
          "label": "Y（像素）",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "confidence",
          "label": "置信度",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "percentagePosition",
          "label": "百分比坐标（0–1）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputTarget": "",
        "mode": "coordinate",
        "action": "tap",
        "holdMs": 500,
        "preDelaySeconds": 1.0,
        "postDelaySeconds": 1.0,
        "x": 0.5,
        "y": 0.5,
        "imageAsset": {
          "bytesBase64": "",
          "width": 0,
          "height": 0,
          "mimeType": "",
          "sourceLabel": ""
        },
        "allowScale": true,
        "allowRotation": false,
        "confidence": 0.8,
        "ocrText": "",
        "ocrExactMatch": false,
        "ocrLanguage": "zh",
        "ocrRotationCorrection": "upside_down",
        "onnxAssetId": "",
        "onnxModelName": "",
        "onnxClassFilter": ""
      },
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "定位方式",
          "englishLabel": "Target mode",
          "defaultValue": "coordinate",
          "options": [
            {
              "value": "coordinate",
              "label": "坐标",
              "englishLabel": "Coordinate"
            },
            {
              "value": "image",
              "label": "图像",
              "englishLabel": "Image"
            },
            {
              "value": "ocr",
              "label": "文字",
              "englishLabel": "Text (OCR)"
            },
            {
              "value": "onnx",
              "label": "ONNX",
              "englishLabel": "ONNX"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "坐标",
          "englishTitle": "Coordinate",
          "searchTerms": [
            "coordinate"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "coordinate"
          }
        },
        {
          "title": "点击 · 图像",
          "englishTitle": "Click · Image",
          "searchTerms": [
            "简易图像识别",
            "Find Image",
            "图像识别",
            "template"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "image"
          }
        },
        {
          "title": "点击 · OCR",
          "englishTitle": "Click · OCR",
          "searchTerms": [
            "点击文字",
            "文字识别"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ocr"
          }
        },
        {
          "title": "点击 · ONNX",
          "englishTitle": "Click · ONNX",
          "searchTerms": [
            "检测点击",
            "yolo"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "onnx"
          }
        }
      ]
    },
    {
      "id": "event.automation_drag",
      "title": "两点拖拽",
      "englishTitle": "Two-point Drag",
      "categoryId": "catalog.macro",
      "description": "分别通过坐标、图像、OCR 或 ONNX 定位起终点，再按指定时长拖拽。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "inputTarget",
          "label": "输入目标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "startPosition",
          "label": "起点（像素）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "endPosition",
          "label": "终点（像素）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "startPercentagePosition",
          "label": "起点百分比（0–1）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "endPercentagePosition",
          "label": "终点百分比（0–1）",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputTarget": "",
        "start": {
          "mode": "coordinate",
          "x": 0.5,
          "y": 0.5,
          "imageAsset": {
            "bytesBase64": "",
            "width": 0,
            "height": 0,
            "mimeType": "",
            "sourceLabel": ""
          },
          "allowScale": true,
          "allowRotation": false,
          "confidence": 0.8,
          "ocrText": "",
          "ocrExactMatch": false,
          "ocrLanguage": "zh",
          "ocrRotationCorrection": "upside_down",
          "onnxAssetId": "",
          "onnxModelName": "",
          "onnxClassFilter": ""
        },
        "end": {
          "mode": "coordinate",
          "x": 0.5,
          "y": 0.5,
          "imageAsset": {
            "bytesBase64": "",
            "width": 0,
            "height": 0,
            "mimeType": "",
            "sourceLabel": ""
          },
          "allowScale": true,
          "allowRotation": false,
          "confidence": 0.8,
          "ocrText": "",
          "ocrExactMatch": false,
          "ocrLanguage": "zh",
          "ocrRotationCorrection": "upside_down",
          "onnxAssetId": "",
          "onnxModelName": "",
          "onnxClassFilter": ""
        },
        "durationSeconds": 1.0,
        "preDelaySeconds": 1.0,
        "postDelaySeconds": 1.0
      }
    },
    {
      "id": "event.automation_type_text",
      "title": "输入文本",
      "englishTitle": "Type Text",
      "categoryId": "catalog.macro",
      "description": "向 PC 当前焦点、窗口进程或 ADB 输入文字；PC 复用宏的粘贴输入。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "inputTarget",
          "label": "输入目标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "text",
          "label": "输入内容",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputTarget": "",
        "text": ""
      }
    },
    {
      "id": "event.bounded_match",
      "title": "等待区域条件",
      "englishTitle": "Wait For Region Condition",
      "categoryId": "catalog.macro",
      "description": "在 ADB 画面的指定范围内等待目标图像或指定文字出现，可按间隔重复检测。如需一次性读取范围内的全部文字，请使用“OCR 识别”节点。双击进入编辑器配置检测范围。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "matched",
          "label": "Matched",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "recognized_text",
          "label": "识别文字",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "等待类型",
          "englishLabel": "Wait type",
          "defaultValue": "image",
          "options": [
            {
              "value": "ocr",
              "label": "文字",
              "englishLabel": "Text"
            },
            {
              "value": "image",
              "label": "图像",
              "englishLabel": "Image"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "等待区域文字",
          "englishTitle": "Wait For Region Text",
          "searchTerms": [
            "等待文字",
            "等待区域文字",
            "OCR",
            "找字",
            "文字条件",
            "ocr",
            "wait for text"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ocr"
          }
        },
        {
          "title": "等待区域图像",
          "englishTitle": "Wait For Region Image",
          "searchTerms": [
            "等待图像",
            "等待区域图像",
            "图像匹配",
            "模板匹配",
            "找图",
            "区域条件",
            "image match",
            "template match"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "image"
          }
        }
      ]
    },
    {
      "id": "event.branch",
      "title": "分支",
      "englishTitle": "Branch",
      "categoryId": "catalog.execution_management",
      "description": "条件分支：根据输入的布尔值走真分支或假分支。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "condition",
          "label": "Condition",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "true",
          "label": "True",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "false",
          "label": "False",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.calibration_rule",
      "title": "ADB操作规则",
      "englishTitle": "ADB Operation Rules",
      "categoryId": "catalog.automation",
      "description": "定义屏幕触摸的映射规则（虚拟轮盘、按键位置等），是视角查找、自动寻路等节点的操作基础。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rule_json",
          "label": "ADB操作规则",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbPlayerMapIconCircleJson": "{\"x\":0.0966,\"y\":0.1637,\"r\":0.0184}",
        "mapProcessingGraphJson": "{\"version\":1,\"layers\":{\"default-minimap-player-icon\":{\"op\":\"remove_player_icon\",\"enabled\":true,\"params\":{}},\"default-reference-resize\":{\"op\":\"resize\",\"enabled\":true,\"params\":{\"estimateAllowRotation\":false,\"scale\":1.0}}},\"pipelines\":{\"minimap\":[\"default-minimap-player-icon\"],\"reference\":[\"default-reference-resize\"]}}"
      }
    },
    {
      "id": "event.clear_overlay_content",
      "title": "清除叠层内容",
      "englishTitle": "Clear Overlay Content",
      "categoryId": "catalog.testing",
      "description": "清除指定叠层辅助任务当前显示的内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.close_android_instance",
      "title": "关闭安卓实例",
      "englishTitle": "Close Android Instance",
      "categoryId": "catalog.automation",
      "description": "按 android: 稳定身份关闭指定安卓实例并确认停止；已停止安全跳过，不关闭其他实例。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "执行",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "状态",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "target": "",
        "operation": "close"
      }
    },
    {
      "id": "event.delay",
      "title": "延迟执行",
      "englishTitle": "Delay",
      "categoryId": "catalog.tool",
      "description": "等待指定时长后再继续执行后续节点。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "seconds",
          "label": "Seconds",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.desktop_command",
      "title": "桌面命令",
      "englishTitle": "Desktop Command",
      "categoryId": "catalog.testing",
      "description": "按所选模式向桌面目标执行命令，输出成功标志与状态。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "target",
          "label": "Desktop",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "command",
          "label": "Command",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "Result",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "runMode",
          "label": "执行模式",
          "englishLabel": "Run mode",
          "defaultValue": "continuous",
          "options": [
            {
              "value": "one_shot",
              "label": "一次性命令",
              "englishLabel": "One-shot command"
            },
            {
              "value": "continuous",
              "label": "持续性命令",
              "englishLabel": "Continuous command"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "一次性命令",
          "englishTitle": "One-shot command",
          "searchTerms": [
            "one_shot"
          ],
          "modeIdentity": "runMode",
          "initialValueOverrides": {
            "runMode": "one_shot"
          }
        },
        {
          "title": "持续性命令",
          "englishTitle": "Continuous command",
          "searchTerms": [
            "continuous"
          ],
          "modeIdentity": "runMode",
          "initialValueOverrides": {
            "runMode": "continuous"
          }
        }
      ]
    },
    {
      "id": "event.destroy_helper",
      "title": "关闭Helper",
      "englishTitle": "Close Helper",
      "categoryId": "catalog.testing",
      "description": "销毁指定辅助任务并释放其资源。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.detect_emulator",
      "title": "识别模拟器",
      "englishTitle": "Detect Emulator",
      "categoryId": "catalog.testing",
      "description": "查找已安装的安卓模拟器，输出程序路径、启动参数与工作目录。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "preferred_path",
          "label": "Exe",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "found",
          "label": "Found",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "exe_path",
          "label": "Exe",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "launch_args",
          "label": "Args",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "work_dir",
          "label": "Work Dir",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "emulator_type",
          "label": "Type",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.detection_overlay",
      "title": "检测型叠层",
      "englishTitle": "Detection Overlay",
      "categoryId": "catalog.testing",
      "description": "配置画面检测目标，并把检测结果显示在叠层中。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "reference_image",
          "label": "Reference Image",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "media.visual_media_split:a",
            "media.visual_media_split:b",
            "media.visual_media_split:g",
            "media.visual_media_split:r",
            "media.visual_media_synthesis:media",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 3,
          "id": "targets_json",
          "label": "JSON",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "window_title",
          "label": "Window",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.do_once",
      "title": "仅执行一次",
      "englishTitle": "Do Once",
      "categoryId": "catalog.execution_management",
      "description": "只执行一次：本次运行中再次经过该节点时直接跳过。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "reset",
          "label": "Reset",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.end",
      "title": "结束执行",
      "englishTitle": "End Execution",
      "categoryId": "catalog.execution",
      "description": "结束当前蓝图。连接任意非执行数据，按本节点输入口名称写入自动化共享变量；双击名称可修改，不影响来源变量。接入后自动出现尾部空端口，各结束节点独立。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "payload_in",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.end_jump",
      "title": "结束并跳转",
      "englishTitle": "结束并跳转",
      "categoryId": "catalog.execution",
      "description": "结束当前蓝图，将接入数据按本节点输入口名称写入自动化共享变量，再跳转到指定蓝图。双击名称可修改，不影响来源变量；数据端口独立自动扩展。序号从 1 开始，也可按名称跳转，目标无效时报错并结束自动化。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "jump_target",
          "label": "跳转目标",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "payload_in",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [],
      "defaultValueOverrides": {
        "jumpTargetMode": "index",
        "jumpTarget": 1
      }
    },
    {
      "id": "event.find_screen",
      "title": "查找屏幕",
      "englishTitle": "Find Screen",
      "categoryId": "catalog.testing",
      "description": "按屏幕标识查找桌面显示器，输出可供截图的目标。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "display_id",
          "label": "屏幕ID",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "capture_target",
          "label": "捕获目标",
          "typeId": "capture_target",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "screen_id",
          "label": "屏幕ID",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "screen_name",
          "label": "名称",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.find_window",
      "title": "查找窗口",
      "englishTitle": "Find Window",
      "categoryId": "catalog.testing",
      "description": "按条件查找桌面窗口，输出匹配的窗口目标。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "query",
          "label": "查询",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "capture_target",
          "label": "捕获目标",
          "typeId": "capture_target",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "window_handle",
          "label": "句柄",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "window_title",
          "label": "标题",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.for_loop_with_break",
      "title": "循环",
      "englishTitle": "Loop",
      "categoryId": "catalog.execution_management",
      "description": "循环执行指定次数，可被中断信号提前退出循环。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "进入循环",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "break",
          "label": "结束循环",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "first_index",
          "label": "First Index",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "last_index",
          "label": "Last Index",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "completed",
          "label": "循环后",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "loop_body",
          "label": "循环体",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "index",
          "label": "Index",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.global_map_navigation",
      "title": "全局图寻路",
      "englishTitle": "Global Map Navigation",
      "categoryId": "catalog.testing",
      "description": "使用干净的完整地图、玩家图标和小地图范围进行全图定位与路径移动；运行能力暂不可用，节点与配置会保留。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "desktop_target",
          "label": "Desktop",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "reference_map",
          "label": "Reference Image",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.grayscale:grey",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb"
          ]
        },
        {
          "index": 4,
          "id": "player_icon",
          "label": "Player Map Icon",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.grayscale:grey",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb"
          ]
        },
        {
          "index": 5,
          "id": "calibration_rule",
          "label": "ADB操作规则",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "confidence_threshold",
          "label": "Threshold",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "done",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "navigationSceneMode",
          "label": "场景",
          "englishLabel": "Scene",
          "defaultValue": "two_dimensional",
          "options": [
            {
              "value": "three_dimensional",
              "label": "三维",
              "englishLabel": "3D"
            },
            {
              "value": "two_dimensional",
              "label": "二维",
              "englishLabel": "2D"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "三维",
          "englishTitle": "3D",
          "searchTerms": [
            "three_dimensional"
          ],
          "modeIdentity": "navigationSceneMode",
          "initialValueOverrides": {
            "navigationSceneMode": "three_dimensional"
          }
        },
        {
          "title": "二维",
          "englishTitle": "2D",
          "searchTerms": [
            "two_dimensional"
          ],
          "modeIdentity": "navigationSceneMode",
          "initialValueOverrides": {
            "navigationSceneMode": "two_dimensional"
          }
        }
      ]
    },
    {
      "id": "event.image_overlay_helper",
      "title": "创建并启动图像叠层Helper",
      "englishTitle": "Create Image Overlay Helper",
      "categoryId": "catalog.testing",
      "description": "创建并启动图像叠层辅助任务，在目标上显示叠加内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "points",
          "label": "坐标数组",
          "typeId": "vector2_array",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "image",
          "label": "内容",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "background_color",
          "label": "底框颜色",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "size",
          "label": "尺寸",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "mode",
          "label": "模式",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "refresh_behavior",
          "label": "刷新行为",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "refresh_hz",
          "label": "Hz",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.indicator_loop",
      "title": "指示循环",
      "englishTitle": "Indicator Loop",
      "categoryId": "catalog.macro",
      "description": "循环执行循环体分支：每轮先识别一次目标，命中则继续循环，未命中或达到上限则走停止分支。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "进入循环",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "loop_body",
          "label": "循环体",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "stop_condition_met",
          "label": "停止条件满足",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "matched",
          "label": "已匹配",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.keyboard_status",
      "title": "创建监听键盘Helper",
      "englishTitle": "Create Keyboard Listener Helper",
      "categoryId": "catalog.testing",
      "description": "读取指定按键当前是否处于按下状态。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "key_text",
          "label": "Key",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "changed",
          "label": "Changed",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.launch_android_instance",
      "title": "拉起ADB安卓实例",
      "englishTitle": "Launch ADB Android Instance",
      "categoryId": "catalog.automation",
      "description": "启动指定安卓实例，输出 android: 完整实例信息字符串，供截图、输入、宏及实例控制节点直接使用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "instance_locator",
          "label": "实例定位",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "实例信息",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "capture_target",
          "label": "设备目标",
          "typeId": "capture_target",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "instance_id",
          "label": "实例 ID",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.launch_program",
      "title": "启动程序",
      "englishTitle": "Launch Program",
      "categoryId": "catalog.testing",
      "description": "启动指定程序，并输出启动结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exe_path",
          "label": "Exe",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "arguments",
          "label": "Args",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "work_dir",
          "label": "Work Dir",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "launched",
          "label": "Launched",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "pid",
          "label": "PID",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "exit_code",
          "label": "Exit Code",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "stdout",
          "label": "Stdout",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "stderr",
          "label": "Stderr",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.message_overlay",
      "title": "消息型叠层",
      "englishTitle": "Message Overlay",
      "categoryId": "catalog.testing",
      "description": "向指定叠层辅助任务显示文字消息。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "media.visual_media_split:a",
            "media.visual_media_split:b",
            "media.visual_media_split:g",
            "media.visual_media_split:r",
            "media.visual_media_synthesis:media",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.read_material_graph_slot:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb"
          ]
        },
        {
          "index": 3,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "font_size",
          "label": "Font Size",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "font_file_path",
          "label": "Font File",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "center_color",
          "label": "Center Color",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "edge_color",
          "label": "Edge Color",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.minimap_navigation",
      "title": "小地图寻路",
      "englishTitle": "Minimap Navigation",
      "categoryId": "catalog.macro",
      "description": "在地图/大世界上按校准过的点位自动寻路移动，常用于跑图与采集路线。双击进入编辑器配置路径与规则。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "desktop_target",
          "label": "Desktop",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "reference_image",
          "label": "Reference Image",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.grayscale:grey",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb"
          ]
        },
        {
          "index": 4,
          "id": "player_map_icon",
          "label": "Player Map Icon",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.grayscale:grey",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb"
          ]
        },
        {
          "index": 5,
          "id": "calibration_rule",
          "label": "ADB操作规则",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "confidence_threshold",
          "label": "Threshold",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "done",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbPlayerMapIconCircleJson": "{\"x\":0.0966,\"y\":0.1637,\"r\":0.0184}",
        "mapProcessingGraphJson": "{\"version\":1,\"layers\":{\"default-minimap-player-icon\":{\"op\":\"remove_player_icon\",\"enabled\":true,\"params\":{}},\"default-reference-resize\":{\"op\":\"resize\",\"enabled\":true,\"params\":{\"estimateAllowRotation\":false,\"scale\":1.0}}},\"pipelines\":{\"minimap\":[\"default-minimap-player-icon\"],\"reference\":[\"default-reference-resize\"]}}"
      },
      "primarySearchModes": [
        {
          "key": "navigationSceneMode",
          "label": "场景",
          "englishLabel": "Scene",
          "defaultValue": "three_dimensional",
          "options": [
            {
              "value": "three_dimensional",
              "label": "三维",
              "englishLabel": "3D"
            },
            {
              "value": "two_dimensional",
              "label": "二维",
              "englishLabel": "2D"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "三维",
          "englishTitle": "3D",
          "searchTerms": [
            "three_dimensional"
          ],
          "modeIdentity": "navigationSceneMode",
          "initialValueOverrides": {
            "navigationSceneMode": "three_dimensional"
          }
        },
        {
          "title": "二维",
          "englishTitle": "2D",
          "searchTerms": [
            "two_dimensional"
          ],
          "modeIdentity": "navigationSceneMode",
          "initialValueOverrides": {
            "navigationSceneMode": "two_dimensional"
          }
        }
      ]
    },
    {
      "id": "event.mouse_macro",
      "title": "宏",
      "englishTitle": "Macro",
      "categoryId": "catalog.macro",
      "description": "编辑并执行一段由输入动作组成的宏。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb",
          "label": "目标信息",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "adb_operation_rule",
          "label": "ADB操作规则",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "event.calibration_rule:rule_json"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "是否成功执行",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.mouse_move_path",
      "title": "鼠标位移",
      "englishTitle": "Mouse Move Path",
      "categoryId": "catalog.testing",
      "description": "按配置的路径移动鼠标。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "path",
          "label": "JSON",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "Result",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "pathMode",
          "label": "路径模式",
          "englishLabel": "Path mode",
          "defaultValue": "curve",
          "options": [
            {
              "value": "curve",
              "label": "曲线",
              "englishLabel": "Curve"
            },
            {
              "value": "line",
              "label": "直线",
              "englishLabel": "Line"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "曲线",
          "englishTitle": "Curve",
          "searchTerms": [
            "curve"
          ],
          "modeIdentity": "pathMode",
          "initialValueOverrides": {
            "pathMode": "curve"
          }
        },
        {
          "title": "直线",
          "englishTitle": "Line",
          "searchTerms": [
            "line"
          ],
          "modeIdentity": "pathMode",
          "initialValueOverrides": {
            "pathMode": "line"
          }
        }
      ]
    },
    {
      "id": "event.node_group",
      "title": "节点组",
      "englishTitle": "Node Group",
      "categoryId": "catalog.testing",
      "description": "封装一组节点，通过组接口传递执行流与数据。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.node_group_entry",
      "title": "进入节点组",
      "englishTitle": "Enter Node Group",
      "categoryId": "catalog.testing",
      "description": "把外部执行流和输入数据引入节点组。",
      "userCreatable": false,
      "removable": false,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.node_group_exit",
      "title": "结束节点组",
      "englishTitle": "Exit Node Group",
      "categoryId": "catalog.testing",
      "description": "结束节点组内部执行，并把结果传回组外。",
      "userCreatable": false,
      "removable": false,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.open_android_app",
      "title": "打开安卓应用",
      "englishTitle": "Open Android App",
      "categoryId": "catalog.testing",
      "description": "在指定安卓设备上打开目标应用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "package_name",
          "label": "Package",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "activity_name",
          "label": "Activity",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "launched",
          "label": "Launched",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "component",
          "label": "Component",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.pause_helper",
      "title": "暂停Helper",
      "englishTitle": "Pause Helper",
      "categoryId": "catalog.testing",
      "description": "暂停指定的辅助任务。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.protected_domain",
      "title": "受保护执行域",
      "englishTitle": "Protected Execution Domain",
      "categoryId": "catalog.execution_management",
      "description": "执行显式节点组，提供成功、失败、超时出口。总时限包含暂停时间；取消后先停止并排空域内操作，不撤销已发生的游戏动作。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "进入",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "payload_0",
          "label": "输入 1",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "success",
          "label": "成功",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "failure",
          "label": "失败",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "timeout",
          "label": "超时",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "状态",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "error_code",
          "label": "安全错误码",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "error_node",
          "label": "出错节点",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "elapsed_ms",
          "label": "耗时毫秒",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "executed_nodes",
          "label": "执行节点数",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "payload_0",
          "label": "结果 1",
          "typeId": "dynamic_any",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "definitionId": "",
        "definitionName": "",
        "instanceAlias": "",
        "inputInterfaceCount": 1,
        "outputInterfaceCount": 1,
        "timeoutSeconds": 60.0,
        "maxNodeExecutions": 10000
      }
    },
    {
      "id": "event.realtime_subtitle_helper",
      "title": "创建实时字幕Helper",
      "englishTitle": "Create Realtime Subtitle Helper",
      "categoryId": "catalog.testing",
      "description": "创建实时字幕辅助任务，将采集到的语音转换成字幕。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "subtitle_text",
          "label": "Subtitle",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "language",
          "label": "Language",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "changed",
          "label": "Changed",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "segment_id",
          "label": "SegmentId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "confidence",
          "label": "Confidence",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "text_value",
          "label": "Text",
          "typeId": "text",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.realtime_translation_helper",
      "title": "实时翻译Helper",
      "englishTitle": "Create Realtime Translation Helper",
      "categoryId": "catalog.testing",
      "description": "创建实时翻译辅助任务，持续翻译采集到的内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "source_text",
          "label": "Source",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "from_language",
          "label": "From",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "to_language",
          "label": "To",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "throttle_ms",
          "label": "ThrottleMs",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "translated_text",
          "label": "Translated",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "source_text",
          "label": "Source",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "from_language",
          "label": "From",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "to_language",
          "label": "To",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "changed",
          "label": "Changed",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "cache_hit",
          "label": "Cache",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "text_value",
          "label": "Text",
          "typeId": "text",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.scan_adb_devices",
      "title": "查找运行中ADB安卓实例",
      "englishTitle": "Find Running ADB Android Instances",
      "categoryId": "catalog.automation",
      "description": "扫描并列出正在运行的 ADB 安卓实例，输出带 android: 前缀的完整实例信息供后续节点直接使用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "实例信息",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "adb_addresses",
          "label": "实例信息列表",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "capture_target",
          "label": "捕获目标",
          "typeId": "capture_target",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "扫描方式",
          "englishLabel": "Scan mode",
          "defaultValue": "auto",
          "options": [
            {
              "value": "auto",
              "label": "自动",
              "englishLabel": "Auto"
            },
            {
              "value": "mumu",
              "label": "MuMu",
              "englishLabel": "MuMu"
            },
            {
              "value": "ldplayer",
              "label": "雷电",
              "englishLabel": "LDPlayer"
            },
            {
              "value": "nox",
              "label": "夜神",
              "englishLabel": "Nox"
            },
            {
              "value": "custom_path",
              "label": "自定义路径",
              "englishLabel": "Custom path"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "自动",
          "englishTitle": "Auto",
          "searchTerms": [
            "auto"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "auto"
          }
        },
        {
          "title": "MuMu",
          "englishTitle": "MuMu",
          "searchTerms": [
            "mumu"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "mumu"
          }
        },
        {
          "title": "雷电",
          "englishTitle": "LDPlayer",
          "searchTerms": [
            "ldplayer"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ldplayer"
          }
        },
        {
          "title": "夜神",
          "englishTitle": "Nox",
          "searchTerms": [
            "nox"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "nox"
          }
        },
        {
          "title": "自定义路径",
          "englishTitle": "Custom path",
          "searchTerms": [
            "custom_path"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "custom_path"
          }
        }
      ]
    },
    {
      "id": "event.screen_overlay",
      "title": "屏幕叠层",
      "englishTitle": "Screen Overlay",
      "categoryId": "catalog.testing",
      "description": "向指定叠层辅助任务添加图像、路径或文字内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "media.visual_media_split:a",
            "media.visual_media_split:b",
            "media.visual_media_split:g",
            "media.visual_media_split:r",
            "media.visual_media_synthesis:media",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.read_material_graph_slot:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb"
          ]
        },
        {
          "index": 3,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "font_size",
          "label": "Font Size",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "font_file_path",
          "label": "Font File",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "center_color",
          "label": "Center Color",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "edge_color",
          "label": "Edge Color",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.sequence",
      "title": "顺序执行",
      "englishTitle": "Sequence",
      "categoryId": "catalog.execution_management",
      "description": "收到一次执行信号后，按编号从上到下立即触发所有输出，不等待前一路完成。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "then_0",
          "label": "Then 0",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "then_1",
          "label": "Then 1",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "then_2",
          "label": "Then 2",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "then_3",
          "label": "Then 3",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "then_4",
          "label": "Then 4",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "then_5",
          "label": "Then 5",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "then_6",
          "label": "Then 6",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "then_7",
          "label": "Then 7",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "then_8",
          "label": "Then 8",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "then_9",
          "label": "Then 9",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "then_10",
          "label": "Then 10",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "then_11",
          "label": "Then 11",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.simple_image_find",
      "title": "简易图像识别",
      "englishTitle": "Find Image",
      "categoryId": "catalog.macro",
      "description": "入门 2D 图像识别：在主屏幕、指定窗口或 ADB 设备上查找模板，输出是否找到与百分比位置，可选循环查找与自动点击目标。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "template_image",
          "label": "模板",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "process_name",
          "label": "窗口进程名",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "screen_id",
          "label": "屏幕ID",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "found",
          "label": "找到",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "position",
          "label": "位置",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.single_merge",
      "title": "单次汇流",
      "englishTitle": "Single Merge",
      "categoryId": "catalog.execution_management",
      "description": "同一次蓝图运行中，多个输入只有最先到达的一路会继续执行；后续到达会被拦截，下一次蓝图运行自动重置。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input_0",
          "label": "Input 0",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "input_1",
          "label": "Input 1",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "input_2",
          "label": "Input 2",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "input_3",
          "label": "Input 3",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "input_4",
          "label": "Input 4",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "input_5",
          "label": "Input 5",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "input_6",
          "label": "Input 6",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "input_7",
          "label": "Input 7",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "input_8",
          "label": "Input 8",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "input_9",
          "label": "Input 9",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "input_10",
          "label": "Input 10",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "input_11",
          "label": "Input 11",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "pass",
          "label": "Pass",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputCount": 2
      }
    },
    {
      "id": "event.sound_direction_helper",
      "title": "创建听声辩位Helper",
      "englishTitle": "Create Sound Direction Helper",
      "categoryId": "catalog.testing",
      "description": "创建听声辨位辅助任务，根据音频显示方向提示。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "volume_threshold",
          "label": "Threshold",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "refresh_hz",
          "label": "Hz",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "overlay_enabled",
          "label": "Overlay",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "hud_enabled",
          "label": "HUD",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "hud_fov",
          "label": "FOV",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "hud_aspect",
          "label": "Aspect",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "hud_yaw_offset",
          "label": "YawOffset",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "hud_edge_enabled",
          "label": "EdgeHUD",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "hud_ripple_scale",
          "label": "Ripple",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "direction",
          "label": "Direction",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "session_label",
          "label": "Session",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "volume",
          "label": "Volume",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "confidence",
          "label": "Confidence",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "active",
          "label": "Active",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "process_name",
          "label": "Process",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "mapping_strategy",
          "label": "Mapping",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "overlay_helper_id",
          "label": "OverlayId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "visible_points",
          "label": "VisiblePoints",
          "typeId": "vector2_array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 13,
          "id": "offscreen_points",
          "label": "OffscreenPoints",
          "typeId": "vector2_array",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.start",
      "title": "开始执行",
      "englishTitle": "Start Execution",
      "categoryId": "catalog.execution",
      "description": "蓝图入口。按声明的名称和类型读取本次任务的共有变量，每项输出值与是否找到；未找到时输出可设置的默认值和 false。双击默认值编辑，资源类型默认空且不可编辑。",
      "userCreatable": false,
      "removable": false,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "payload_out",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.start_helper",
      "title": "启动Helper",
      "englishTitle": "Start Helper",
      "categoryId": "catalog.testing",
      "description": "启动指定的辅助任务。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.string_mapper",
      "title": "字符串规则映射",
      "englishTitle": "String Rule Mapper",
      "categoryId": "catalog.testing",
      "description": "按从上到下的第一条命中规则，将输入映射为指定文本，例如“登录成功 => 完成”；严格模式匹配整段，宽松模式匹配包含。不进行数值转换。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "input_text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "default_output",
          "label": "Default Output",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "output_text",
          "label": "Text",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "output_bool",
          "label": "Bool",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "matched",
          "label": "Matched",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "match_index",
          "label": "Match Index",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "matchMode",
          "label": "匹配模式",
          "englishLabel": "Match mode",
          "defaultValue": "loose",
          "options": [
            {
              "value": "loose",
              "label": "宽松",
              "englishLabel": "Loose"
            },
            {
              "value": "strict",
              "label": "严格",
              "englishLabel": "Strict"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "宽松",
          "englishTitle": "Loose",
          "searchTerms": [
            "loose"
          ],
          "modeIdentity": "matchMode",
          "initialValueOverrides": {
            "matchMode": "loose"
          }
        },
        {
          "title": "严格",
          "englishTitle": "Strict",
          "searchTerms": [
            "strict"
          ],
          "modeIdentity": "matchMode",
          "initialValueOverrides": {
            "matchMode": "strict"
          }
        }
      ]
    },
    {
      "id": "event.switch_int",
      "title": "切换整型",
      "englishTitle": "Switch Int",
      "categoryId": "catalog.execution",
      "description": "根据输入整数只激活一个执行输出；0..N-1 走对应分支，负数或没有对应分支的值走 Default。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "selection",
          "label": "Selection",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "case_0",
          "label": "0",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "case_1",
          "label": "1",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "case_2",
          "label": "2",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "case_3",
          "label": "3",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "case_4",
          "label": "4",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "case_5",
          "label": "5",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "case_6",
          "label": "6",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "case_7",
          "label": "7",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "case_8",
          "label": "8",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "case_9",
          "label": "9",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "case_10",
          "label": "10",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "case_11",
          "label": "11",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "default",
          "label": "Default",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "caseCount": 3,
        "selection": 0
      }
    },
    {
      "id": "event.template_match_helper",
      "title": "创建并启动模板匹配Helper",
      "englishTitle": "Create Template Match Helper",
      "categoryId": "catalog.testing",
      "description": "创建并启动模板匹配辅助任务，在目标画面中查找参考图。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "capture_target",
          "label": "捕获目标",
          "typeId": "capture_target",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "template_image",
          "label": "模板图像",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "threshold",
          "label": "Threshold",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "roi_start",
          "label": "左上",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "roi_end",
          "label": "右下",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "debug",
          "label": "Debug",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "points",
          "label": "坐标数组",
          "typeId": "vector2_array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "helper_id",
          "label": "HelperId",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "event.view_calibration",
      "title": "3D近距离特征物查找",
      "englishTitle": "Find Nearby 3D Feature",
      "categoryId": "catalog.macro",
      "description": "通过拖动视角或固定前进在 3D 场景里查找图像/OCR/YOLO 目标；支持扫描键前置与快速查找模式。双击进入编辑器配置。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "desktop_target",
          "label": "Desktop",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "event.find_window:window_handle",
            "event.find_window:window_title"
          ]
        },
        {
          "index": 3,
          "id": "ocr_text",
          "label": "OCR 文本",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "done",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "recognitionMode",
          "label": "识别方式",
          "englishLabel": "Recognition",
          "defaultValue": "image",
          "options": [
            {
              "value": "image",
              "label": "图像",
              "englishLabel": "Image"
            },
            {
              "value": "ocr",
              "label": "文字",
              "englishLabel": "Text (OCR)"
            },
            {
              "value": "yolo",
              "label": "YOLO",
              "englishLabel": "YOLO"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "图像",
          "englishTitle": "Image",
          "searchTerms": [
            "image"
          ],
          "modeIdentity": "recognitionMode",
          "initialValueOverrides": {
            "recognitionMode": "image"
          }
        },
        {
          "title": "文字",
          "englishTitle": "Text (OCR)",
          "searchTerms": [
            "ocr"
          ],
          "modeIdentity": "recognitionMode",
          "initialValueOverrides": {
            "recognitionMode": "ocr"
          }
        },
        {
          "title": "YOLO",
          "englishTitle": "YOLO",
          "searchTerms": [
            "yolo"
          ],
          "modeIdentity": "recognitionMode",
          "initialValueOverrides": {
            "recognitionMode": "yolo"
          }
        }
      ]
    },
    {
      "id": "event.window_state",
      "title": "窗口状态",
      "englishTitle": "Window State",
      "categoryId": "catalog.automation",
      "description": "激活到前台或最小化 window: 窗口或 android: 实例；老板键已隐藏的窗口保持隐藏，不会暗中显示。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "执行",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "状态",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "target",
          "label": "目标信息",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "target": "",
        "operation": "activate"
      },
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "操作",
          "englishLabel": "Operation",
          "defaultValue": "activate",
          "options": [
            {
              "value": "activate",
              "label": "激活到前台",
              "englishLabel": "Activate"
            },
            {
              "value": "minimize",
              "label": "最小化",
              "englishLabel": "Minimize"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "激活到前台",
          "englishTitle": "Activate",
          "searchTerms": [
            "activate"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "activate"
          }
        },
        {
          "title": "最小化",
          "englishTitle": "Minimize",
          "searchTerms": [
            "minimize"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "minimize"
          }
        }
      ]
    },
    {
      "id": "flip_flop",
      "title": "切换",
      "englishTitle": "FlipFlop",
      "categoryId": "catalog.testing",
      "description": "每次执行在 A、B 之间交替，首次从 A 开始；暂停保留状态，重新运行从 A 开始。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "a",
          "label": "A",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "b",
          "label": "B",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.adaptive_bound",
      "title": "自适应bound",
      "englishTitle": "Adaptive Bound",
      "categoryId": "catalog.testing",
      "description": "根据输入内容调整边界，并输出图像或图层。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input",
          "label": "输入",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.combine",
      "title": "合成图像",
      "englishTitle": "合成图像",
      "categoryId": "catalog.testing",
      "description": "把独立的颜色与透明度通道合成为图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "r",
          "label": "R",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "g",
          "label": "G",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "b",
          "label": "B",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "resolution",
          "label": "Resolution",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": true
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.custom_path",
      "title": "自定义Path",
      "englishTitle": "Custom Path",
      "categoryId": "catalog.testing",
      "description": "编辑并输出自定义路径形状。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "source",
          "label": "SVG/Path",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "width",
          "label": "宽",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "高",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.ellipse",
      "title": "椭圆",
      "englishTitle": "Ellipse",
      "categoryId": "catalog.testing",
      "description": "按尺寸设置生成椭圆路径。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "canvasWidth",
          "label": "Canvas W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "canvasHeight",
          "label": "Canvas H",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "centerX",
          "label": "Center X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "centerY",
          "label": "Center Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "radiusX",
          "label": "Radius X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "radiusY",
          "label": "Radius Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "rotation",
          "label": "Rotation",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "red",
          "label": "R",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "green",
          "label": "G",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "blue",
          "label": "B",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "alpha",
          "label": "Alpha",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "softness",
          "label": "Softness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.grayscale",
      "title": "灰度化",
      "englishTitle": "Grayscale",
      "categoryId": "catalog.testing",
      "description": "将输入图像转换为灰度图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:rgb",
            "image.line:rgb",
            "image.polygon:rgb",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:rgb",
            "image.smart_cutout:rgb",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.bake_material_graph:image",
            "model.material_graph_operation:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:rgb"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "grey",
          "label": "Grey",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.line",
      "title": "直线",
      "englishTitle": "Line",
      "categoryId": "catalog.testing",
      "description": "按起点和终点生成线段路径。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "canvasWidth",
          "label": "Canvas W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "canvasHeight",
          "label": "Canvas H",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "startX",
          "label": "Start X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "startY",
          "label": "Start Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "endX",
          "label": "End X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "endY",
          "label": "End Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "lineWidth",
          "label": "Line W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "roundCaps",
          "label": "Round Caps",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "red",
          "label": "R",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "green",
          "label": "G",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "blue",
          "label": "B",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "alpha",
          "label": "Alpha",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "softness",
          "label": "Softness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.mapping",
      "title": "映射",
      "englishTitle": "Mapping",
      "categoryId": "catalog.testing",
      "description": "设置图像的位置、缩放与旋转映射。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "vector",
          "label": "Vector2",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "vector",
          "label": "Vector2",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.mask_process",
      "title": "Mask 处理",
      "englishTitle": "Mask Process",
      "categoryId": "catalog.testing",
      "description": "按配置处理遮罩的边缘、范围或形态。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "mask",
          "label": "Mask",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.read_material_graph_slot:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "mask",
          "label": "Mask",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.polygon",
      "title": "多边形",
      "englishTitle": "Polygon",
      "categoryId": "catalog.testing",
      "description": "按顶点配置生成多边形路径。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "canvasWidth",
          "label": "Canvas W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "canvasHeight",
          "label": "Canvas H",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "centerX",
          "label": "Center X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "centerY",
          "label": "Center Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "sides",
          "label": "Sides",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "radius",
          "label": "Radius",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "rotation",
          "label": "Rotation",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "red",
          "label": "R",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "green",
          "label": "G",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "blue",
          "label": "B",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "alpha",
          "label": "Alpha",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "softness",
          "label": "Softness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.reset_mapping",
      "title": "图像归位",
      "englishTitle": "Reset Image",
      "categoryId": "catalog.testing",
      "description": "重置图像的映射变换。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "Visual",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.to_image:image",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.read_material_graph_slot:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.rounded_rectangle",
      "title": "圆角矩形",
      "englishTitle": "Rounded Rectangle",
      "categoryId": "catalog.testing",
      "description": "按尺寸与圆角设置生成矩形路径。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "canvasWidth",
          "label": "Canvas W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "canvasHeight",
          "label": "Canvas H",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "centerX",
          "label": "Center X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "centerY",
          "label": "Center Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "shapeWidth",
          "label": "Width",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "shapeHeight",
          "label": "Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "cornerRadius",
          "label": "Radius",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "red",
          "label": "R",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "green",
          "label": "G",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "blue",
          "label": "B",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "alpha",
          "label": "Alpha",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "softness",
          "label": "Softness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.smart_crop",
      "title": "智能裁切",
      "englishTitle": "Smart Crop",
      "categoryId": "catalog.testing",
      "description": "按配置识别图像内容边界并进行裁剪。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:rgb",
            "image.line:rgb",
            "image.polygon:rgb",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:rgb",
            "image.smart_cutout:rgb",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "text.string_to_image:rgb"
          ]
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "model.uv_texture_padding:a",
            "text.string_to_image:a"
          ]
        },
        {
          "index": 3,
          "id": "threshold",
          "label": "Threshold",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "margin",
          "label": "Margin",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.smart_cutout",
      "title": "智能抠图",
      "englishTitle": "Smart Cutout",
      "categoryId": "catalog.testing",
      "description": "分离图像主体与背景，输出抠图结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:rgb",
            "image.line:rgb",
            "image.polygon:rgb",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:rgb",
            "image.smart_cutout:rgb",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:image",
            "model.material_graph_operation:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.split",
      "title": "拆分图像",
      "englishTitle": "拆分图像",
      "categoryId": "catalog.testing",
      "description": "拆分图像的颜色与透明度通道。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "r",
          "label": "R",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "g",
          "label": "G",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "b",
          "label": "B",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "resolution",
          "label": "Resolution",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.to_layer",
      "title": "转图层",
      "englishTitle": "To Layers",
      "categoryId": "catalog.testing",
      "description": "将图像转换为图层数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input_1",
          "label": "输入 1",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 1,
          "id": "input_2",
          "label": "输入 2",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 2,
          "id": "input_3",
          "label": "输入 3",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 3,
          "id": "input_4",
          "label": "输入 4",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 4,
          "id": "input_5",
          "label": "输入 5",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 5,
          "id": "input_6",
          "label": "输入 6",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 6,
          "id": "input_7",
          "label": "输入 7",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 7,
          "id": "input_8",
          "label": "输入 8",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "image.video_info",
      "title": "抓取视频信息",
      "englishTitle": "Video Info",
      "categoryId": "catalog.testing",
      "description": "读取输入图像或视频的尺寸等媒体信息。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "Visual",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.to_image:image",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.read_material_graph_slot:image",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "frameCount",
          "label": "总帧数",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "frameRate",
          "label": "Frame Rate",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "width",
          "label": "宽",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "高",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "durationSeconds",
          "label": "时长秒",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.androidInstance",
      "title": "安卓实例",
      "englishTitle": "Android Instance",
      "categoryId": "catalog.variable",
      "description": "选择并输出本地安卓实例，供启动与自动化节点使用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "String",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.array",
      "title": "数组",
      "englishTitle": "Array",
      "categoryId": "catalog.variable",
      "description": "保存一组有序元素，并输出数组及元素数量。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Array",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "element_count",
          "label": "元素数量",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.audio_media",
      "title": "音频变量",
      "englishTitle": "Audio Variable",
      "categoryId": "catalog.variable",
      "description": "保存并传递音频数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.bool",
      "title": "布尔",
      "englishTitle": "Bool",
      "categoryId": "catalog.variable",
      "description": "保存并输出真或假，供条件判断使用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Bool",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.color",
      "title": "颜色",
      "englishTitle": "Color",
      "categoryId": "catalog.variable",
      "description": "设置颜色及透明度，并输出颜色值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Color",
          "typeId": "color",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.float",
      "title": "浮点",
      "englishTitle": "Float",
      "categoryId": "catalog.variable",
      "description": "保存并输出可带小数的数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Float",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.image",
      "title": "图片",
      "englishTitle": "Image",
      "categoryId": "catalog.variable",
      "description": "保存图像数据，并输出颜色图像和透明度通道。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "mapping",
          "label": "Mapping",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "vector3",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.image_timeline_frame",
      "title": "当前帧",
      "englishTitle": "Current Frame",
      "categoryId": "catalog.variable",
      "description": "读取图像时间轴的当前帧、起止帧和进度。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "frame",
          "label": "Frame",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "startFrame",
          "label": "Start",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "endFrame",
          "label": "End",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "progress",
          "label": "Progress",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "inverseProgress",
          "label": "Inverse",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.int",
      "title": "整数",
      "englishTitle": "Int",
      "categoryId": "catalog.variable",
      "description": "保存并输出整数值。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Int",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.model",
      "title": "模型变量",
      "englishTitle": "Model Variable",
      "categoryId": "catalog.variable",
      "description": "保存并传递三维模型数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "model",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Model",
          "typeId": "model",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.pdf_document",
      "title": "PDF变量",
      "englishTitle": "PDF Variable",
      "categoryId": "catalog.variable",
      "description": "保存并传递 PDF 文档数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.string",
      "title": "字符串",
      "englishTitle": "String",
      "categoryId": "catalog.variable",
      "description": "保存并输出一段字符串。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "String",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.vector2",
      "title": "二维数",
      "englishTitle": "Vector2",
      "categoryId": "catalog.variable",
      "description": "保存并输出由 X、Y 两个分量组成的二维向量。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "vector2",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Vector2",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.vector3",
      "title": "三维数",
      "englishTitle": "Vector3",
      "categoryId": "catalog.variable",
      "description": "保存并输出由 X、Y、Z 三个分量组成的三维向量。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "vector3",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Vector3",
          "typeId": "vector3",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.vector4",
      "title": "四维数",
      "englishTitle": "Vector4",
      "categoryId": "catalog.variable",
      "description": "保存并输出由四个分量组成的向量。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "vector4",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Vector4",
          "typeId": "vector4",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "initial.visual_media",
      "title": "影像变量",
      "englishTitle": "Visual Variable",
      "categoryId": "catalog.variable",
      "description": "保存并传递影像数据，供后续影像节点使用。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Set",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "input.read_file",
      "title": "读取文件",
      "englishTitle": "Read File",
      "categoryId": "catalog.testing",
      "description": "读取指定文件的内容并输出读取结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "Value",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Value",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "key_event",
      "title": "按键",
      "englishTitle": "Key Event",
      "categoryId": "catalog.execution",
      "description": "蓝图运行期间监听按键或组合键，分别在按下和松开时触发事件链；按住不重复触发。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "pressed",
          "label": "Pressed",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "released",
          "label": "Released",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "keyEventBinding": ""
      }
    },
    {
      "id": "layer.array",
      "title": "图层阵列",
      "englishTitle": "Layer Array",
      "categoryId": "catalog.testing",
      "description": "按数量、位移或旋转设置复制并排列图层。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "source",
          "label": "Layer",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "阵列模式",
          "englishLabel": "Array mode",
          "defaultValue": "offset",
          "options": [
            {
              "value": "offset",
              "label": "偏移",
              "englishLabel": "Offset"
            },
            {
              "value": "rotation",
              "label": "旋转",
              "englishLabel": "Rotation"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "偏移",
          "englishTitle": "Offset",
          "searchTerms": [
            "offset"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "offset"
          }
        },
        {
          "title": "旋转",
          "englishTitle": "Rotation",
          "searchTerms": [
            "rotation"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "rotation"
          }
        }
      ]
    },
    {
      "id": "layer.math",
      "title": "图层运算",
      "englishTitle": "Layer Math",
      "categoryId": "catalog.testing",
      "description": "按所选方式组合上下图层，输出处理后的图层。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "top",
          "label": "上层",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 1,
          "id": "bottom",
          "label": "下层",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "模式",
          "englishLabel": "Mode",
          "defaultValue": "pass_through",
          "options": [
            {
              "value": "pass_through",
              "label": "穿透",
              "englishLabel": "Pass through"
            },
            {
              "value": "masked",
              "label": "非穿透",
              "englishLabel": "Masked"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "穿透",
          "englishTitle": "Pass through",
          "searchTerms": [
            "pass_through"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "pass_through"
          }
        },
        {
          "title": "非穿透",
          "englishTitle": "Masked",
          "searchTerms": [
            "masked"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "masked"
          }
        }
      ]
    },
    {
      "id": "layer.reset_mapping",
      "title": "图层归位",
      "englishTitle": "Reset Layers",
      "categoryId": "catalog.testing",
      "description": "重置图层的映射变换。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "layer.to_image",
      "title": "图层转图像",
      "englishTitle": "Layers to Image",
      "categoryId": "catalog.testing",
      "description": "将输入图层渲染为图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "layer.uniform_bound",
      "title": "图层统一bound",
      "englishTitle": "Uniform Layer Bound",
      "categoryId": "catalog.testing",
      "description": "为输入图层设置统一边界。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "layout.reroute.execution",
      "title": "执行转接点",
      "englishTitle": "执行转接点",
      "categoryId": "catalog.execution",
      "description": "整理执行流连线的转接点，运行前会被折叠为直接连接。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "layout.reroute.value",
      "title": "变量转接点",
      "englishTitle": "变量转接点",
      "categoryId": "catalog.operation",
      "description": "整理变量连线的转接点，运行前会被折叠为直接连接。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "value_in",
          "label": "Value",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value_out",
          "label": "Value",
          "typeId": "dynamic_any",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.async_join",
      "title": "异步汇合",
      "englishTitle": "Async Join",
      "categoryId": "catalog.testing",
      "description": "等待对应的并行宏分支完成后继续。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "branch_1",
          "label": "Branch 1",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "branch_2",
          "label": "Branch 2",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "branch_3",
          "label": "Branch 3",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "branch_4",
          "label": "Branch 4",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "branch_5",
          "label": "Branch 5",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.async_split",
      "title": "异步分流",
      "englishTitle": "Async Split",
      "categoryId": "catalog.testing",
      "description": "把宏动作分为可并行执行的分支。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "branch_1",
          "label": "Branch 1",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "branch_2",
          "label": "Branch 2",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "branch_3",
          "label": "Branch 3",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "branch_4",
          "label": "Branch 4",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "branch_5",
          "label": "Branch 5",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.click",
      "title": "目标按键",
      "englishTitle": "Target Click",
      "categoryId": "catalog.testing",
      "description": "在宏目标上执行一次配置的按键动作。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbTouchTargets": [
          {}
        ]
      }
    },
    {
      "id": "macro.delay",
      "title": "延时动作",
      "englishTitle": "Delay Action",
      "categoryId": "catalog.testing",
      "description": "等待指定时长后继续宏动作。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.end",
      "title": "宏结束",
      "englishTitle": "Macro End",
      "categoryId": "catalog.testing",
      "description": "结束宏内部动作的执行。",
      "userCreatable": false,
      "removable": false,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.move",
      "title": "目标移动",
      "englishTitle": "Target Move",
      "categoryId": "catalog.testing",
      "description": "在宏目标上移动指针到指定位置。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.path_playback",
      "title": "鼠标宏路径回放",
      "englishTitle": "鼠标宏路径回放",
      "categoryId": "catalog.testing",
      "description": "回放已配置的鼠标移动路径。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.platform_branch",
      "title": "平台分支",
      "englishTitle": "Platform Branch",
      "categoryId": "catalog.testing",
      "description": "按目标平台选择对应的宏动作分支。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "desktop",
          "label": "Desktop",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb",
          "label": "ADB",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.platform_merge",
      "title": "平台汇合",
      "englishTitle": "Platform Merge",
      "categoryId": "catalog.testing",
      "description": "将平台分支接回后续宏动作。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "desktop",
          "label": "Desktop",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb",
          "label": "ADB",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.press_down",
      "title": "目标仅按下",
      "englishTitle": "Target Press",
      "categoryId": "catalog.testing",
      "description": "按下宏目标上的指定按键，保持到对应抬起动作。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbTouchTargets": [
          {}
        ]
      }
    },
    {
      "id": "macro.release",
      "title": "目标仅抬起",
      "englishTitle": "Target Release",
      "categoryId": "catalog.testing",
      "description": "抬起宏目标上已按下的指定按键。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "adbTouchTargets": [
          {}
        ]
      }
    },
    {
      "id": "macro.start",
      "title": "宏开始",
      "englishTitle": "Macro Start",
      "categoryId": "catalog.testing",
      "description": "标记宏内部动作的执行起点。",
      "userCreatable": false,
      "removable": false,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "macro.type_text",
      "title": "输入文本",
      "englishTitle": "Type Text",
      "categoryId": "catalog.testing",
      "description": "向宏目标输入指定文本。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "media.get_local_media",
      "title": "视频",
      "englishTitle": "Video",
      "categoryId": "catalog.testing",
      "description": "读取指定媒体文件，供后续影音处理使用。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Media",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "visual",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 2,
          "id": "audio",
          "label": "Audio 1",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 3,
          "id": "resolution",
          "label": "Resolution",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "frameRate",
          "label": "Frame Rate",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "audio_2",
          "label": "Audio 2",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 6,
          "id": "audio_3",
          "label": "Audio 3",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 7,
          "id": "audio_4",
          "label": "Audio 4",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 8,
          "id": "audio_5",
          "label": "Audio 5",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 9,
          "id": "audio_6",
          "label": "Audio 6",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 10,
          "id": "audio_7",
          "label": "Audio 7",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 11,
          "id": "audio_8",
          "label": "Audio 8",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "media.save",
      "title": "保存",
      "englishTitle": "保存",
      "categoryId": "catalog.testing",
      "description": "将输入的数据保存到指定输出位置。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "entity",
          "label": "Entity",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "name",
          "label": "Name",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "path",
          "label": "路径",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "alpha",
          "label": "A",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "media.visual_media_math",
      "title": "影像运算",
      "englishTitle": "Visual Media Math",
      "categoryId": "catalog.testing",
      "description": "按所选运算组合输入影像。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "left",
          "label": "叠加层",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "media.visual_media_split:a",
            "media.visual_media_split:b",
            "media.visual_media_split:g",
            "media.visual_media_split:r",
            "media.visual_media_synthesis:media",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 2,
          "id": "right",
          "label": "画布层",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:a",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:rgb",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:rgb",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "media.visual_media_split:a",
            "media.visual_media_split:b",
            "media.visual_media_split:g",
            "media.visual_media_split:r",
            "media.visual_media_synthesis:media",
            "model.texture_color_adjust:image",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "result",
          "label": "Result",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "运算",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "相加",
              "englishLabel": "Add"
            },
            {
              "value": "subtract",
              "label": "相减",
              "englishLabel": "Subtract"
            },
            {
              "value": "multiply",
              "label": "相乘",
              "englishLabel": "Multiply"
            },
            {
              "value": "divide",
              "label": "相除",
              "englishLabel": "Divide"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "相加",
          "englishTitle": "Add",
          "searchTerms": [
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "相减",
          "englishTitle": "Subtract",
          "searchTerms": [
            "subtract"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "subtract"
          }
        },
        {
          "title": "相乘",
          "englishTitle": "Multiply",
          "searchTerms": [
            "multiply"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "multiply"
          }
        },
        {
          "title": "相除",
          "englishTitle": "Divide",
          "searchTerms": [
            "divide"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "divide"
          }
        }
      ]
    },
    {
      "id": "media.visual_media_split",
      "title": "提取影像通道",
      "englishTitle": "Split Visual Media",
      "categoryId": "catalog.testing",
      "description": "拆分影像中的颜色与透明度通道。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "r",
          "label": "R",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "g",
          "label": "G",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "b",
          "label": "B",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "fps",
          "label": "Frame Rate",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "media.visual_media_synthesis",
      "title": "合成影像",
      "englishTitle": "Combine Visual Media",
      "categoryId": "catalog.testing",
      "description": "将独立通道合成为影像。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "r",
          "label": "R",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "g",
          "label": "G",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "b",
          "label": "B",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "fps",
          "label": "Frame Rate",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.assign_material_graph_slot",
      "title": "赋值材质槽",
      "englishTitle": "Assign Material Slot",
      "categoryId": "catalog.testing",
      "description": "将输入内容赋给指定材质槽位。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "source",
          "label": "Source",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.assign_mesh_material",
      "title": "指定Mesh材质",
      "englishTitle": "Assign Mesh Material",
      "categoryId": "catalog.testing",
      "description": "为指定模型网格分配材质。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.create_cube:mesh",
            "model.create_cylinder:mesh",
            "model.create_plane:mesh",
            "model.create_sphere:mesh",
            "model.find_mesh:mesh",
            "model.find_mesh:meshes",
            "model.import_glb:meshes",
            "model.simplify_mesh:mesh",
            "model.simplify_mesh:meshes"
          ]
        },
        {
          "index": 3,
          "id": "material",
          "label": "材质",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.assign_material_graph_slot:material_graph",
            "model.assign_mesh_material:materials",
            "model.create_material_graph:material_graph",
            "model.find_material:material",
            "model.find_material:materials",
            "model.import_glb:materials",
            "model.material_graph_operation:material_graph",
            "model.set_material_graph_slot:material_graph"
          ]
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "materials",
          "label": "材质集",
          "typeId": "model_material_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "mesh_count",
          "label": "Mesh",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.auto_repair_compliance",
      "title": "一键检测修复3D合规",
      "englishTitle": "Auto Repair 3D Compliance",
      "categoryId": "catalog.testing",
      "description": "对模型执行检查并自动修复可处理的问题。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "profile",
          "label": "规则",
          "typeId": "model_compliance_profile",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "report",
          "label": "报告",
          "typeId": "model_compliance_report",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "before_report",
          "label": "检测前",
          "typeId": "model_compliance_report",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "after_report",
          "label": "复检",
          "typeId": "model_compliance_report",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "report_json",
          "label": "JSON",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.bake_material_graph",
      "title": "烘焙材质图",
      "englishTitle": "Bake Material Graph",
      "categoryId": "catalog.testing",
      "description": "把材质图的处理结果烘焙为贴图。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "resolution",
          "label": "分辨率",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "图像",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "texture",
          "label": "贴图",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "baked_count",
          "label": "Count",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "report_json",
          "label": "Report",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.bake_texture",
      "title": "烘焙贴图",
      "englishTitle": "Bake Texture",
      "categoryId": "catalog.testing",
      "description": "按烘焙设置生成模型贴图。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "低模",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.create_cube:mesh",
            "model.create_cylinder:mesh",
            "model.create_plane:mesh",
            "model.create_sphere:mesh",
            "model.find_mesh:mesh",
            "model.find_mesh:meshes",
            "model.import_glb:meshes",
            "model.simplify_mesh:mesh",
            "model.simplify_mesh:meshes"
          ]
        },
        {
          "index": 3,
          "id": "high_mesh",
          "label": "高模",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.create_cube:mesh",
            "model.create_cylinder:mesh",
            "model.create_plane:mesh",
            "model.create_sphere:mesh",
            "model.find_mesh:mesh",
            "model.find_mesh:meshes",
            "model.import_glb:meshes",
            "model.simplify_mesh:mesh",
            "model.simplify_mesh:meshes"
          ]
        },
        {
          "index": 4,
          "id": "material",
          "label": "材质",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.assign_material_graph_slot:material_graph",
            "model.assign_mesh_material:materials",
            "model.create_material_graph:material_graph",
            "model.find_material:material",
            "model.find_material:materials",
            "model.import_glb:materials",
            "model.material_graph_operation:material_graph",
            "model.set_material_graph_slot:material_graph"
          ]
        },
        {
          "index": 5,
          "id": "resolution",
          "label": "分辨率",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "bake_type",
          "label": "类型",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "cage_extrusion",
          "label": "Cage",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "ray_distance",
          "label": "Ray",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "normal_space",
          "label": "空间",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "id_mode",
          "label": "ID模式",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "图像",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "layers",
          "label": "图层",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "bake_report",
          "label": "Report",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.batch_material_series",
      "title": "系列资产批处理",
      "englishTitle": "Batch Material Series",
      "categoryId": "catalog.testing",
      "description": "按配置批量处理一组系列材质资产。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "series_json",
          "label": "批量JSON",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "output_dir",
          "label": "输出目录",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "resolution",
          "label": "分辨率",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success_count",
          "label": "Success",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "failure_count",
          "label": "Failure",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_paths",
          "label": "Outputs",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "report_json",
          "label": "Report",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.check_compliance",
      "title": "检测3D合规",
      "englishTitle": "Check 3D Compliance",
      "categoryId": "catalog.testing",
      "description": "按配置的规则检查模型并输出检查结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "profile",
          "label": "规则",
          "typeId": "model_compliance_profile",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "report",
          "label": "报告",
          "typeId": "model_compliance_report",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "report_json",
          "label": "JSON",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.create_cube",
      "title": "创建立方体",
      "englishTitle": "Create Cube",
      "categoryId": "catalog.testing",
      "description": "按尺寸设置生成立方体网格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "width",
          "label": "Width",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "depth",
          "label": "Depth",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "x",
          "label": "X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "y",
          "label": "Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "z",
          "label": "Z",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "name",
          "label": "Name",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.create_cylinder",
      "title": "创建圆柱",
      "englishTitle": "Create Cylinder",
      "categoryId": "catalog.testing",
      "description": "按半径、高度与分段设置生成圆柱网格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "radius",
          "label": "Radius",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "segments",
          "label": "Segments",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "x",
          "label": "X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "y",
          "label": "Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "z",
          "label": "Z",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "name",
          "label": "Name",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.create_material_graph",
      "title": "创建材质图",
      "englishTitle": "Create Material Graph",
      "categoryId": "catalog.testing",
      "description": "创建用于组织材质与贴图处理的材质图。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "material",
          "label": "材质",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.assign_material_graph_slot:material_graph",
            "model.assign_mesh_material:materials",
            "model.create_material_graph:material_graph",
            "model.find_material:material",
            "model.find_material:materials",
            "model.import_glb:materials",
            "model.material_graph_operation:material_graph",
            "model.set_material_graph_slot:material_graph"
          ]
        },
        {
          "index": 3,
          "id": "query",
          "label": "Query",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "material",
          "label": "材质",
          "typeId": "model_material",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.create_plane",
      "title": "创建平面",
      "englishTitle": "Create Plane",
      "categoryId": "catalog.testing",
      "description": "按尺寸设置生成平面网格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "width",
          "label": "Width",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "x",
          "label": "X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "y",
          "label": "Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "z",
          "label": "Z",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "name",
          "label": "Name",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.create_sphere",
      "title": "创建球",
      "englishTitle": "Create Sphere",
      "categoryId": "catalog.testing",
      "description": "按半径与分段设置生成球体网格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "radius",
          "label": "Radius",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "segments",
          "label": "Segments",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "rings",
          "label": "Rings",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "x",
          "label": "X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "y",
          "label": "Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "z",
          "label": "Z",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "name",
          "label": "Name",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.find_material",
      "title": "查找材质",
      "englishTitle": "Find Material",
      "categoryId": "catalog.testing",
      "description": "在模型中查找指定材质。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "query",
          "label": "Query",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material",
          "label": "材质",
          "typeId": "model_material",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "materials",
          "label": "材质集",
          "typeId": "model_material_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "match_count",
          "label": "Count",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.find_mesh",
      "title": "查找Mesh",
      "englishTitle": "Find Mesh",
      "categoryId": "catalog.testing",
      "description": "在模型中查找指定网格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "query",
          "label": "Query",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "meshes",
          "label": "Mesh组",
          "typeId": "model_mesh_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "match_count",
          "label": "Count",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.find_texture",
      "title": "查找贴图",
      "englishTitle": "Find Texture",
      "categoryId": "catalog.testing",
      "description": "在模型中查找指定贴图。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "query",
          "label": "Query",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "texture",
          "label": "贴图",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "textures",
          "label": "贴图组",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "match_count",
          "label": "Count",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.import_glb",
      "title": "导入模型",
      "englishTitle": "Import Model",
      "categoryId": "catalog.testing",
      "description": "导入模型数据，供网格、材质与贴图节点继续处理。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "path",
          "label": "Path",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "meshes",
          "label": "Mesh组",
          "typeId": "model_mesh_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "materials",
          "label": "材质集",
          "typeId": "model_material_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "textures",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "mesh_count",
          "label": "Mesh",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "material_count",
          "label": "Material",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "texture_count",
          "label": "Texture",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "uv_channel_count",
          "label": "UV",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.material_graph_operation",
      "title": "材质运算",
      "englishTitle": "Material Operation",
      "categoryId": "catalog.testing",
      "description": "对材质图中的输入内容执行所选材质运算。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "operation",
          "label": "Operation",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "channel",
          "label": "Channel",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "left",
          "label": "Left",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "basope.vector_math:result",
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.material_graph_operation:number",
            "model.material_graph_operation:value",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.read_material_graph_slot:number",
            "model.read_material_graph_slot:value",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 6,
          "id": "right",
          "label": "Right",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "basope.vector_math:result",
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.material_graph_operation:number",
            "model.material_graph_operation:value",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.read_material_graph_slot:number",
            "model.read_material_graph_slot:value",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 7,
          "id": "mask",
          "label": "Mask",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "basope.k_curve:inverse",
            "basope.k_curve:value",
            "basope.math:remainder",
            "basope.math:result",
            "basope.vector_math:result",
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.float:value",
            "initial.image:a",
            "initial.image:rgb",
            "initial.int:value",
            "initial.vector2:value",
            "initial.vector3:value",
            "initial.vector4:value",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.material_graph_operation:number",
            "model.material_graph_operation:value",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.read_material_graph_slot:number",
            "model.read_material_graph_slot:value",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 8,
          "id": "factor",
          "label": "Factor",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "value",
          "label": "Value",
          "typeId": "vector4",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "number",
          "label": "Number",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "image",
          "label": "图像",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "layers",
          "label": "图层",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.read",
      "title": "读取模型",
      "englishTitle": "Read Model",
      "categoryId": "catalog.testing",
      "description": "读取模型文件并输出模型数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "path",
          "label": "Path",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "model",
          "label": "Model",
          "typeId": "model",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "mesh_count",
          "label": "Mesh",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "material_count",
          "label": "Material",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "uv_channel_count",
          "label": "UV",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "format",
          "label": "Format",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.read_material_graph_slot",
      "title": "读取PBR槽位",
      "englishTitle": "Read PBR Slot",
      "categoryId": "catalog.testing",
      "description": "读取材质图中指定 PBR 槽位的内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "图像",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "layers",
          "label": "图层",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "value",
          "label": "Value",
          "typeId": "vector4",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "number",
          "label": "Number",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "texture_index",
          "label": "Texture",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.repair_compliance",
      "title": "修复3D合规",
      "englishTitle": "Repair 3D Compliance",
      "categoryId": "catalog.testing",
      "description": "按所选策略修复模型检查中发现的问题。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "profile",
          "label": "规则",
          "typeId": "model_compliance_profile",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "report",
          "label": "报告",
          "typeId": "model_compliance_report",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "report_json",
          "label": "JSON",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.set_material_graph_slot",
      "title": "设置PBR槽位",
      "englishTitle": "Set PBR Slot",
      "categoryId": "catalog.testing",
      "description": "修改材质图中指定 PBR 槽位的内容。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "source",
          "label": "Source",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 4,
          "id": "value",
          "label": "Value",
          "typeId": "vector4",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "number",
          "label": "Number",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "material_graph",
          "label": "材质图",
          "typeId": "model_material_graph",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "slot",
          "label": "Slot",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.simplify_mesh",
      "title": "精简Mesh",
      "englishTitle": "Simplify Mesh",
      "categoryId": "catalog.testing",
      "description": "减少输入网格的复杂度并输出精简后的模型。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "model.create_cube:mesh",
            "model.create_cylinder:mesh",
            "model.create_plane:mesh",
            "model.create_sphere:mesh",
            "model.find_mesh:mesh",
            "model.find_mesh:meshes",
            "model.import_glb:meshes",
            "model.simplify_mesh:mesh",
            "model.simplify_mesh:meshes"
          ]
        },
        {
          "index": 3,
          "id": "ratio",
          "label": "Ratio",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "target_triangles",
          "label": "Target",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "error",
          "label": "Error",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "lock_border",
          "label": "Lock",
          "typeId": "bool",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D场景",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "mesh",
          "label": "Mesh",
          "typeId": "model_mesh",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "meshes",
          "label": "Mesh组",
          "typeId": "model_mesh_set",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "before_triangles",
          "label": "Before",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "after_triangles",
          "label": "After",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.texture_color_adjust",
      "title": "贴图色差调整",
      "englishTitle": "Texture Color Adjust",
      "categoryId": "catalog.testing",
      "description": "按配置调整贴图颜色。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "source",
          "label": "Texture",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.adaptive_bound:image",
            "image.adaptive_bound:layers",
            "image.combine:image",
            "image.custom_path:path",
            "image.ellipse:a",
            "image.ellipse:path",
            "image.ellipse:rgb",
            "image.grayscale:grey",
            "image.line:a",
            "image.line:path",
            "image.line:rgb",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.polygon:path",
            "image.polygon:rgb",
            "image.reset_mapping:image",
            "image.rounded_rectangle:a",
            "image.rounded_rectangle:path",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:a",
            "image.smart_crop:rgb",
            "image.smart_cutout:a",
            "image.smart_cutout:rgb",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "image.to_layer:layers",
            "initial.image:a",
            "initial.image:rgb",
            "initial.visual_media:value",
            "layer.array:layers",
            "layer.math:layers",
            "layer.reset_mapping:layers",
            "layer.to_image:image",
            "layer.uniform_bound:layers",
            "media.get_local_media:visual",
            "media.visual_media_math:result",
            "model.bake_material_graph:texture",
            "model.bake_texture:layers",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.material_graph_operation:layers",
            "model.read_material_graph_slot:image",
            "model.read_material_graph_slot:layers",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:a",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "pdf.to_layer:layers",
            "text.string_to_image:a",
            "text.string_to_image:rgb",
            "text.string_to_path:path",
            "text.string_to_text:text",
            "video.ffmpeg:visual"
          ]
        },
        {
          "index": 2,
          "id": "brightness",
          "label": "Brightness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "contrast",
          "label": "Contrast",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "saturation",
          "label": "Saturation",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "gamma",
          "label": "Gamma",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "color_temperature",
          "label": "Temperature",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "hue_degrees",
          "label": "Hue",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "color_space_mode",
          "label": "Color Space",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "texture",
          "label": "Texture",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.uv_texture_padding",
      "title": "UV贴图边缘扩展",
      "englishTitle": "UV Texture Padding",
      "categoryId": "catalog.testing",
      "description": "扩展 UV 区域边缘的贴图颜色，减少接缝处漏色。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "model",
          "label": "Model",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.combine:image",
            "image.ellipse:rgb",
            "image.line:rgb",
            "image.polygon:rgb",
            "image.rounded_rectangle:rgb",
            "image.smart_crop:rgb",
            "image.smart_cutout:rgb",
            "initial.image:rgb",
            "initial.visual_media:value",
            "media.visual_media_math:result",
            "model.find_texture:texture",
            "model.find_texture:textures",
            "model.import_glb:textures",
            "model.texture_color_adjust:image",
            "model.texture_color_adjust:texture",
            "model.uv_texture_padding:rgb",
            "model.uv_texture_padding:texture",
            "text.string_to_image:rgb"
          ]
        },
        {
          "index": 3,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false,
          "acceptedInputPortKeys": [
            "image.ellipse:a",
            "image.grayscale:grey",
            "image.line:a",
            "image.mask_process:mask",
            "image.polygon:a",
            "image.rounded_rectangle:a",
            "image.smart_crop:a",
            "image.smart_cutout:a",
            "image.split:a",
            "image.split:b",
            "image.split:g",
            "image.split:r",
            "initial.image:a",
            "model.uv_texture_padding:a",
            "text.string_to_image:a"
          ]
        },
        {
          "index": 4,
          "id": "padding_pixels",
          "label": "Padding",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "uv_channel",
          "label": "UV",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "inward_cleanup_pixels",
          "label": "Clean",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "texture",
          "label": "Texture",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "model.write_glb",
      "title": "写回GLB",
      "englishTitle": "Write GLB",
      "categoryId": "catalog.testing",
      "description": "将处理后的模型写出为 GLB 文件。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D Scene",
          "typeId": "model_scene",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "textures",
          "label": "Textures",
          "typeId": "layer_stack",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "scene",
          "label": "3D Scene",
          "typeId": "model_scene",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "output_path",
          "label": "Output",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "replacement_count",
          "label": "Count",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.image_to_pdf",
      "title": "图像转PDF",
      "englishTitle": "Image To PDF",
      "categoryId": "catalog.testing",
      "description": "将输入图像转换为 PDF 页面。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "image",
          "label": "图像",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.layer_to_pdf",
      "title": "图层转PDF",
      "englishTitle": "Layer To PDF",
      "categoryId": "catalog.testing",
      "description": "将图层内容输出为 PDF 文档。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.merge",
      "title": "PDF合并",
      "englishTitle": "Merge PDF",
      "categoryId": "catalog.testing",
      "description": "按输入顺序将多个 PDF 文档合并为一份文档。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "pdf_1",
          "label": "PDF 1",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf_2",
          "label": "PDF 2",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "pdf_3",
          "label": "PDF 3",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "pdf_4",
          "label": "PDF 4",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "pdf_5",
          "label": "PDF 5",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "pdf_6",
          "label": "PDF 6",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "pdf_7",
          "label": "PDF 7",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "pdf_8",
          "label": "PDF 8",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.page_to_image",
      "title": "PDF页转图像",
      "englishTitle": "PDF Page To Image",
      "categoryId": "catalog.testing",
      "description": "把指定 PDF 页面渲染为图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "page_number",
          "label": "页码",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "dpi",
          "label": "DPI",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.read",
      "title": "读取PDF",
      "englishTitle": "Read PDF",
      "categoryId": "catalog.testing",
      "description": "读取指定 PDF 文件并输出文档数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "path",
          "label": "路径",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "page_number",
          "label": "页码",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "reverse_page_number",
          "label": "倒数页码",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "page_count",
          "label": "Pages",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "size",
          "label": "尺寸",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "scanned",
          "label": "扫描件",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "exported",
          "label": "导出型",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "page_pdf",
          "label": "指定页PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "reverse_page_pdf",
          "label": "倒数页PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "pdf.smart_page_sort",
      "title": "PDF智能页码排序",
      "englishTitle": "PDF Page Sort",
      "categoryId": "catalog.testing",
      "description": "识别 PDF 页码信息并重新排列页面顺序。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "识别模式",
          "englishLabel": "Recognition mode",
          "defaultValue": "scanning",
          "options": [
            {
              "value": "scanning",
              "label": "扫描",
              "englishLabel": "Scanning"
            },
            {
              "value": "comprehensive",
              "label": "综合",
              "englishLabel": "Comprehensive"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "扫描",
          "englishTitle": "Scanning",
          "searchTerms": [
            "scanning"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "scanning"
          }
        },
        {
          "title": "综合",
          "englishTitle": "Comprehensive",
          "searchTerms": [
            "comprehensive"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "comprehensive"
          }
        }
      ]
    },
    {
      "id": "pdf.smart_rotate",
      "title": "PDF智能旋转矫正",
      "englishTitle": "PDF Smart Rotate",
      "categoryId": "catalog.testing",
      "description": "判断 PDF 页面方向并按配置进行旋转矫正。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "识别模式",
          "englishLabel": "Recognition mode",
          "defaultValue": "scanning",
          "options": [
            {
              "value": "scanning",
              "label": "扫描",
              "englishLabel": "Scanning"
            },
            {
              "value": "comprehensive",
              "label": "综合",
              "englishLabel": "Comprehensive"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "扫描",
          "englishTitle": "Scanning",
          "searchTerms": [
            "scanning"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "scanning"
          }
        },
        {
          "title": "综合",
          "englishTitle": "Comprehensive",
          "searchTerms": [
            "comprehensive"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "comprehensive"
          }
        }
      ]
    },
    {
      "id": "pdf.stamp",
      "title": "PDF印章",
      "englishTitle": "PDF Stamp",
      "categoryId": "catalog.testing",
      "description": "在 PDF 指定页面位置叠加印章图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "page_number",
          "label": "页码",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "x",
          "label": "X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "y",
          "label": "Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "width",
          "label": "宽度",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "rotation",
          "label": "旋转",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "opacity",
          "label": "透明",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "target_text",
          "label": "目标文本",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "offset_x",
          "label": "偏移X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "offset_y",
          "label": "偏移Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "盖章方式",
          "englishLabel": "Stamp mode",
          "defaultValue": "fixed",
          "options": [
            {
              "value": "fixed",
              "label": "固定位置",
              "englishLabel": "Fixed position"
            },
            {
              "value": "seam",
              "label": "骑缝章",
              "englishLabel": "Seam"
            },
            {
              "value": "ocr",
              "label": "文字定位",
              "englishLabel": "Text position (OCR)"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "固定位置",
          "englishTitle": "Fixed position",
          "searchTerms": [
            "fixed"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "fixed"
          }
        },
        {
          "title": "骑缝章",
          "englishTitle": "Seam",
          "searchTerms": [
            "seam"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "seam"
          }
        },
        {
          "title": "文字定位",
          "englishTitle": "Text position (OCR)",
          "searchTerms": [
            "ocr"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "ocr"
          }
        }
      ]
    },
    {
      "id": "pdf.to_layer",
      "title": "PDF转图层",
      "englishTitle": "PDF To Layer",
      "categoryId": "catalog.testing",
      "description": "将 PDF 内容转换为可处理的图层数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "pdf",
          "label": "PDF",
          "typeId": "pdf_document",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "layers",
          "label": "Layer",
          "typeId": "layer_stack",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "region.pixel_state",
      "title": "区域像素状态判断",
      "englishTitle": "Region Pixel State",
      "categoryId": "catalog.tool",
      "description": "在同一帧内计算多个区域的亮度、饱和度或颜色占比，支持黑白遮罩及 AND/OR/NOT。一次判断或持续等待，按真假结果放行。双击框选和配置。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "adb_address",
          "label": "ADB设备",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "image",
          "label": "静态图像",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "通过",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "result",
          "label": "当前结果",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "regionPixelStateConfig": {
          "conditions": [
            {
              "id": "region-1",
              "name": "区域",
              "rect": {
                "x": 0.0,
                "y": 0.0,
                "width": 1.0,
                "height": 1.0
              },
              "maskImage": {
                "bytesBase64": "",
                "width": 0,
                "height": 0,
                "mimeType": "",
                "sourceLabel": ""
              },
              "metric": "meanBrightness",
              "min": 0.5,
              "max": 1.0,
              "pixelMin": 0.5,
              "pixelMax": 1.0,
              "targetColor": "#FFFFFF",
              "colorTolerance": 0.1
            }
          ],
          "expression": {
            "op": "leaf",
            "conditionId": "region-1"
          },
          "mode": "once",
          "passWhen": true,
          "timeoutMillis": 30000,
          "sampleIntervalMillis": 0,
          "stableFrames": 1,
          "stableMillis": 0,
          "adbAddress": "",
          "desktopTarget": "",
          "previewImage": {
            "bytesBase64": "",
            "width": 0,
            "height": 0,
            "mimeType": "",
            "sourceLabel": ""
          }
        }
      },
      "primarySearchModes": [
        {
          "key": "mode",
          "containerKey": "regionPixelStateConfig",
          "label": "判断方式",
          "englishLabel": "Evaluation",
          "defaultValue": "once",
          "options": [
            {
              "value": "once",
              "label": "一次判断",
              "englishLabel": "Once"
            },
            {
              "value": "wait",
              "label": "持续等待",
              "englishLabel": "Wait"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "一次判断",
          "englishTitle": "Once",
          "searchTerms": [
            "once"
          ],
          "modeIdentity": "regionPixelStateConfig.mode",
          "initialValueOverrides": {
            "regionPixelStateConfig": {
              "mode": "once"
            }
          }
        },
        {
          "title": "持续等待",
          "englishTitle": "Wait",
          "searchTerms": [
            "wait"
          ],
          "modeIdentity": "regionPixelStateConfig.mode",
          "initialValueOverrides": {
            "regionPixelStateConfig": {
              "mode": "wait"
            }
          }
        }
      ]
    },
    {
      "id": "text.bilingual_subtitle_merge",
      "title": "双语字幕合并",
      "englishTitle": "Bilingual Subtitle Merge",
      "categoryId": "catalog.testing",
      "description": "合并两份文本或字幕内容，生成双语结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "subtitle_a",
          "label": "Variable",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "subtitle_b",
          "label": "Variable",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "subtitle",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.lightweight_translate",
      "title": "轻量翻译",
      "englishTitle": "Light Translate",
      "categoryId": "catalog.testing",
      "description": "按所选语言翻译输入文本。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "source",
          "label": "Variable",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "subtitle",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "translateMode",
          "label": "翻译方向",
          "englishLabel": "Translation",
          "defaultValue": "zh_en",
          "options": [
            {
              "value": "zh_en",
              "label": "中译英",
              "englishLabel": "Chinese to English"
            },
            {
              "value": "en_zh",
              "label": "英译中",
              "englishLabel": "English to Chinese"
            },
            {
              "value": "ja_en",
              "label": "日译英",
              "englishLabel": "Japanese to English"
            },
            {
              "value": "en_ja",
              "label": "英译日",
              "englishLabel": "English to Japanese"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "中译英",
          "englishTitle": "Chinese to English",
          "searchTerms": [
            "zh_en"
          ],
          "modeIdentity": "translateMode",
          "initialValueOverrides": {
            "translateMode": "zh_en"
          }
        },
        {
          "title": "英译中",
          "englishTitle": "English to Chinese",
          "searchTerms": [
            "en_zh"
          ],
          "modeIdentity": "translateMode",
          "initialValueOverrides": {
            "translateMode": "en_zh"
          }
        },
        {
          "title": "日译英",
          "englishTitle": "Japanese to English",
          "searchTerms": [
            "ja_en"
          ],
          "modeIdentity": "translateMode",
          "initialValueOverrides": {
            "translateMode": "ja_en"
          }
        },
        {
          "title": "英译日",
          "englishTitle": "English to Japanese",
          "searchTerms": [
            "en_ja"
          ],
          "modeIdentity": "translateMode",
          "initialValueOverrides": {
            "translateMode": "en_ja"
          }
        }
      ]
    },
    {
      "id": "text.measure_text_size",
      "title": "字符串尺寸估算",
      "englishTitle": "Measure Text Size",
      "categoryId": "catalog.testing",
      "description": "按字体与字号估算输入字符串的显示宽度和高度。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "font_size",
          "label": "Font Size",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "width",
          "label": "Width",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "height",
          "label": "Height",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.ollama",
      "title": "Ollama 文本",
      "englishTitle": "Ollama Text",
      "categoryId": "catalog.testing",
      "description": "将提示词和输入文本交给 Ollama 模型，输出生成的文本。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "system_prompt",
          "label": "System",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "randomness",
          "label": "Randomness",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.punctuation_to_space",
      "title": "标点转空格",
      "englishTitle": "Punctuation To Space",
      "categoryId": "catalog.testing",
      "description": "将输入文本中的标点替换为空格。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "source",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "space_count",
          "label": "Number",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.replace_characters",
      "title": "替换字符",
      "englishTitle": "替换字符",
      "categoryId": "catalog.testing",
      "description": "按配置的替换关系修改输入文本中的字符。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "source",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "find",
          "label": "查找",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "replacement",
          "label": "新字符",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.string_add",
      "title": "字符串相加",
      "englishTitle": "String Add",
      "categoryId": "catalog.tool",
      "description": "按输入口顺序连接多个字符串，可选择加入换行。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "text_1",
          "label": "1",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "text_2",
          "label": "2",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "text_3",
          "label": "3",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "text_4",
          "label": "4",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "text_5",
          "label": "5",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "text_6",
          "label": "6",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "text_7",
          "label": "7",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "text_8",
          "label": "8",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "text_9",
          "label": "9",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "text_10",
          "label": "10",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "text_11",
          "label": "11",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "text_12",
          "label": "12",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "text_13",
          "label": "13",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 13,
          "id": "text_14",
          "label": "14",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 14,
          "id": "text_15",
          "label": "15",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 15,
          "id": "text_16",
          "label": "16",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 16,
          "id": "text_17",
          "label": "17",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 17,
          "id": "text_18",
          "label": "18",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 18,
          "id": "text_19",
          "label": "19",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 19,
          "id": "text_20",
          "label": "20",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 20,
          "id": "text_21",
          "label": "21",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 21,
          "id": "text_22",
          "label": "22",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 22,
          "id": "text_23",
          "label": "23",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 23,
          "id": "text_24",
          "label": "24",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 24,
          "id": "text_25",
          "label": "25",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 25,
          "id": "text_26",
          "label": "26",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 26,
          "id": "text_27",
          "label": "27",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 27,
          "id": "text_28",
          "label": "28",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 28,
          "id": "text_29",
          "label": "29",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 29,
          "id": "text_30",
          "label": "30",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 30,
          "id": "text_31",
          "label": "31",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 31,
          "id": "text_32",
          "label": "32",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 32,
          "id": "text_33",
          "label": "33",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 33,
          "id": "text_34",
          "label": "34",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 34,
          "id": "text_35",
          "label": "35",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 35,
          "id": "text_36",
          "label": "36",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 36,
          "id": "text_37",
          "label": "37",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 37,
          "id": "text_38",
          "label": "38",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 38,
          "id": "text_39",
          "label": "39",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 39,
          "id": "text_40",
          "label": "40",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 40,
          "id": "text_41",
          "label": "41",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 41,
          "id": "text_42",
          "label": "42",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 42,
          "id": "text_43",
          "label": "43",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 43,
          "id": "text_44",
          "label": "44",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 44,
          "id": "text_45",
          "label": "45",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 45,
          "id": "text_46",
          "label": "46",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 46,
          "id": "text_47",
          "label": "47",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 47,
          "id": "text_48",
          "label": "48",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 48,
          "id": "text_49",
          "label": "49",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 49,
          "id": "text_50",
          "label": "50",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 50,
          "id": "text_51",
          "label": "51",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 51,
          "id": "text_52",
          "label": "52",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 52,
          "id": "text_53",
          "label": "53",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 53,
          "id": "text_54",
          "label": "54",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 54,
          "id": "text_55",
          "label": "55",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 55,
          "id": "text_56",
          "label": "56",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 56,
          "id": "text_57",
          "label": "57",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 57,
          "id": "text_58",
          "label": "58",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 58,
          "id": "text_59",
          "label": "59",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 59,
          "id": "text_60",
          "label": "60",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 60,
          "id": "text_61",
          "label": "61",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 61,
          "id": "text_62",
          "label": "62",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 62,
          "id": "text_63",
          "label": "63",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 63,
          "id": "text_64",
          "label": "64",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.string_to_image",
      "title": "字符串转图像",
      "englishTitle": "Text To Image",
      "categoryId": "catalog.testing",
      "description": "按字体和样式把输入字符串绘制成图像。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "fontFamily",
          "label": "Font",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "fontFilePath",
          "label": "Font File",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "fontSize",
          "label": "Font Size",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "maxWidth",
          "label": "Wrap Width",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "padding",
          "label": "Padding",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "lineHeight",
          "label": "Line Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "textColor",
          "label": "Text Color",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "backgroundColor",
          "label": "Background",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "strokeWidth",
          "label": "Stroke W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "strokeColor",
          "label": "Stroke",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "shadowOffsetX",
          "label": "Shadow X",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 12,
          "id": "shadowOffsetY",
          "label": "Shadow Y",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 13,
          "id": "shadowBlur",
          "label": "Shadow Blur",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 14,
          "id": "shadowColor",
          "label": "Shadow",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "rgb",
          "label": "RGB",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "a",
          "label": "A",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.string_to_path",
      "title": "字符串转Path",
      "englishTitle": "String To Path",
      "categoryId": "catalog.testing",
      "description": "解析字符串中的路径描述，输出路径、尺寸与成功标志。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "path",
          "label": "Path",
          "typeId": "path",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "Success",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "width",
          "label": "宽",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "height",
          "label": "高",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "text.string_to_text",
      "title": "字符串转文本",
      "englishTitle": "String To Text",
      "categoryId": "catalog.testing",
      "description": "把字符串转换为可设置字体与样式的文本数据。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "fontFamily",
          "label": "Font",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "fontFilePath",
          "label": "Font File",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "fontSize",
          "label": "Font Size",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "fillColor",
          "label": "Fill",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "strokeWidth",
          "label": "Stroke W",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "strokeColor",
          "label": "Stroke",
          "typeId": "color",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "lineHeight",
          "label": "Line Height",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "maxWidth",
          "label": "Max Width",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "textAlign",
          "label": "Align",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "text",
          "label": "Text",
          "typeId": "text",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "tool.single_choice_mapping",
      "title": "单选项映射",
      "englishTitle": "Single-Choice Mapping",
      "categoryId": "catalog.tool",
      "description": "从具名选项中单选并输出对应整数；默认公开，可在运行前切换模式。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "set_value",
          "label": "设置值",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "映射整数",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "exec_out",
          "label": "完成",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "options": [
          {
            "id": "option_1",
            "label": "选项 1",
            "value": 1
          },
          {
            "id": "option_2",
            "label": "选项 2",
            "value": 2
          }
        ],
        "value": 1,
        "isPublic": true,
        "publicName": ""
      }
    },
    {
      "id": "utility.array_condition",
      "title": "数组元素判断",
      "englishTitle": "Array Conditions",
      "categoryId": "catalog.tool",
      "description": "条件分满足时与不满足时操作，后者默认不操作。变量支持外部初始值；按权重选出实际分支的赋值，再按条件顺序运算。不满足时的操作不会新增命中元素。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "执行",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "arrayConditions": {
          "version": 1,
          "rules": [],
          "outputs": []
        }
      }
    },
    {
      "id": "utility.array_edit",
      "title": "数组编辑",
      "englishTitle": "Array Edit",
      "categoryId": "catalog.tool",
      "description": "在选定位置添加、删除或替换元素，输出新数组。指定编号从 1 开始；添加时插入在该编号前。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "id",
          "label": "ID（仅指定编号）",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "string",
          "label": "字符串（添加/替换）",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "operation",
          "label": "操作",
          "englishLabel": "Operation",
          "defaultValue": "add",
          "options": [
            {
              "value": "add",
              "label": "添加",
              "englishLabel": "Add"
            },
            {
              "value": "delete",
              "label": "删除",
              "englishLabel": "Delete"
            },
            {
              "value": "replace",
              "label": "替换",
              "englishLabel": "Replace"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "添加",
          "englishTitle": "Add",
          "searchTerms": [
            "add"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "add"
          }
        },
        {
          "title": "删除",
          "englishTitle": "Delete",
          "searchTerms": [
            "delete"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "delete"
          }
        },
        {
          "title": "替换",
          "englishTitle": "Replace",
          "searchTerms": [
            "replace"
          ],
          "modeIdentity": "operation",
          "initialValueOverrides": {
            "operation": "replace"
          }
        }
      ]
    },
    {
      "id": "utility.array_element_by_id",
      "title": "按 ID 输出数组内元素",
      "englishTitle": "Array Element By ID",
      "categoryId": "catalog.tool",
      "description": "按从 1 开始的 ID 读取数组元素，可选择输出类型；选择数组时直接输出子数组，类型不符或 ID 越界时报告错误。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "id",
          "label": "ID（从 1 开始）",
          "typeId": "integer",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "字符串（自动转换）",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "utility.array_make",
      "title": "组装数组",
      "englishTitle": "Make Array",
      "categoryId": "catalog.tool",
      "description": "按输入顺序将值组成新数组；输入本身是数组时作为一个子数组保留。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input_0",
          "label": "元素 1",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "input_1",
          "label": "元素 2",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputCount": 2
      }
    },
    {
      "id": "utility.array_merge",
      "title": "数组合并",
      "englishTitle": "Merge Arrays",
      "categoryId": "catalog.tool",
      "description": "依次连接各输入数组的元素，只合并当前层，保留更深层的子数组。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input_0",
          "label": "数组 1",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "input_1",
          "label": "数组 2",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputCount": 2
      }
    },
    {
      "id": "utility.array_text_codec",
      "title": "数组与字符串转换",
      "englishTitle": "Array / JSON",
      "categoryId": "catalog.tool",
      "description": "使用标准 JSON 在数组和字符串之间转换；输出成功状态与错误说明，保留字符串中的空格和换行。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "input",
          "label": "JSON 字符串",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "error",
          "label": "错误",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "direction": "from_json"
      },
      "primarySearchModes": [
        {
          "key": "direction",
          "label": "转换方向",
          "englishLabel": "Direction",
          "defaultValue": "from_json",
          "options": [
            {
              "value": "from_json",
              "label": "JSON 转数组",
              "englishLabel": "JSON to array"
            },
            {
              "value": "to_json",
              "label": "数组转 JSON",
              "englishLabel": "Array to JSON"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "JSON 转数组",
          "englishTitle": "JSON to array",
          "searchTerms": [
            "from_json"
          ],
          "modeIdentity": "direction",
          "initialValueOverrides": {
            "direction": "from_json"
          }
        },
        {
          "title": "数组转 JSON",
          "englishTitle": "Array to JSON",
          "searchTerms": [
            "to_json"
          ],
          "modeIdentity": "direction",
          "initialValueOverrides": {
            "direction": "to_json"
          }
        }
      ]
    },
    {
      "id": "utility.array_unique",
      "title": "数组去重复",
      "englishTitle": "Unique Array",
      "categoryId": "catalog.tool",
      "description": "按完整值和类型去重，保留第一次出现的元素与原顺序，同时输出移除数量。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "array",
          "label": "数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "removed_count",
          "label": "移除数量",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "utility.current_time",
      "title": "当前时间",
      "englishTitle": "Current Time",
      "categoryId": "catalog.tool",
      "description": "在执行流经过节点时采样本地当前时间。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "formatted",
          "label": "格式化时间",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "year",
          "label": "年",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "month",
          "label": "月",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "day",
          "label": "日",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "hour",
          "label": "时",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "minute",
          "label": "分",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "second",
          "label": "秒",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "weekday",
          "label": "周几（1=周一）",
          "typeId": "integer",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "variable.bind",
      "title": "绑定变量",
      "englishTitle": "Bind Variable",
      "categoryId": "catalog.variable",
      "description": "把辅助任务的指定实时输出绑定到所选变量。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "output_id",
          "label": "Output",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "variable.get",
      "title": "读取变量",
      "englishTitle": "Get Variable",
      "categoryId": "catalog.variable",
      "description": "读取所选蓝图变量当前的值。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "variable.set",
      "title": "设置变量",
      "englishTitle": "Set Variable",
      "categoryId": "catalog.variable",
      "description": "把输入值写入所选蓝图变量，并继续执行。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "value",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "value",
          "label": "Variable",
          "typeId": "dynamic_any",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "variable.string_to_number",
      "title": "字符串转数值",
      "englishTitle": "String To Number",
      "categoryId": "catalog.tool",
      "description": "将整段合法数字转换为整数或浮点数；混合文本只提取第一个数字片段，同时分别输出全部转换成功与部分转换成功。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "source",
          "label": "String",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "value",
          "label": "Number",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "fully_converted",
          "label": "全部转换成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "partially_converted",
          "label": "部分转换成功",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {},
      "primarySearchModes": [
        {
          "key": "mode",
          "label": "数值类型",
          "englishLabel": "Number type",
          "defaultValue": "integer",
          "options": [
            {
              "value": "integer",
              "label": "整数",
              "englishLabel": "Integer"
            },
            {
              "value": "float",
              "label": "浮点数",
              "englishLabel": "Float"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "字符串转数值-整数",
          "englishTitle": "String To Integer",
          "searchTerms": [
            "转整数",
            "字符串转整数",
            "parse int",
            "integer"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "integer"
          }
        },
        {
          "title": "字符串转数值-浮点",
          "englishTitle": "String To Float",
          "searchTerms": [
            "转浮点",
            "字符串转浮点",
            "parse float",
            "double"
          ],
          "modeIdentity": "mode",
          "initialValueOverrides": {
            "mode": "float"
          }
        }
      ]
    },
    {
      "id": "variable.unbind",
      "title": "解绑变量",
      "englishTitle": "Unbind Variable",
      "categoryId": "catalog.variable",
      "description": "解除辅助任务指定实时输出与变量的绑定。",
      "userCreatable": false,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "helper",
          "label": "Helper",
          "typeId": "helper",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "output_id",
          "label": "Output",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "success",
          "label": "完成",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "status",
          "label": "Status",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "video.ffmpeg",
      "title": "影音提取/合成",
      "englishTitle": "Video Split/Merge",
      "categoryId": "catalog.testing",
      "description": "提取或合成媒体中的视频、音频与字幕流。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "visual",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "frameRate",
          "label": "Frame Rate",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "visual",
          "label": "Visual",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": true
        },
        {
          "index": 2,
          "id": "audio",
          "label": "Audio",
          "typeId": "audio_media",
          "direction": "output",
          "allowsDynamicLabel": true
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "video.ocr",
      "title": "范围OCR识别",
      "englishTitle": "Region OCR",
      "categoryId": "catalog.macro",
      "description": "识别图片或实时画面中的文字，默认按字高整理同一行的相邻文字框，可关闭。双击设置识别范围；读取数字时请只框选目标值，避免把 187/240 的多个数字一起传给数字转换。媒体输入优先，否则从 ADB、窗口进程或指定屏幕抓取画面。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Media",
          "typeId": "dynamic_any",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "input_target",
          "label": "输入目标",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "found",
          "label": "Found",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "text",
          "label": "Text",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "result",
          "label": "JSON",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "texts",
          "label": "文字列表",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "text_centers",
          "label": "文字列表坐标",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "inputTarget": ""
      }
    },
    {
      "id": "video.onnx",
      "title": "ONNX 推理",
      "englishTitle": "ONNX Inference",
      "categoryId": "catalog.testing",
      "description": "使用指定的 ONNX 模型对输入数据执行推理。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Media",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "model",
          "label": "Model",
          "typeId": "onnx_model",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "video.yolov8_detect",
      "title": "YOLOv8 检测",
      "englishTitle": "YOLOv8 Detect",
      "categoryId": "catalog.testing",
      "description": "使用检测模型查找画面中的目标，并输出检测结果。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": true,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "Exec In",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "media",
          "label": "Media",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "model",
          "label": "Model",
          "typeId": "onnx_model",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "confidence_threshold",
          "label": "Confidence",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "iou_threshold",
          "label": "IoU",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "topk",
          "label": "TopK",
          "typeId": "number",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "Exec Out",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "result",
          "label": "Result",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {}
    },
    {
      "id": "vision.multi_state_ui",
      "title": "多状态 UI 识别",
      "englishTitle": "Multi-State UI Recognition",
      "categoryId": "catalog.tool",
      "description": "从目标字符串或图像变量取帧，识别多个图像/文字条件，以 AND/OR/NOT 汇总为总布尔值。一次性直接通过；轮询直到总布尔为真。只识别，不发送输入。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "source",
          "label": "目标字符串",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "完成识别",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "total_matched",
          "label": "总布尔值",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 2,
          "id": "valid",
          "label": "结果有效",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 3,
          "id": "state_id",
          "label": "选中状态 ID",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 4,
          "id": "matched_ids",
          "label": "命中状态 ID 数组",
          "typeId": "array",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 5,
          "id": "unknown",
          "label": "未知状态",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 6,
          "id": "conflict",
          "label": "多状态冲突",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 7,
          "id": "position_valid",
          "label": "位置有效",
          "typeId": "bool",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 8,
          "id": "percentage_point",
          "label": "源帧百分比坐标",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 9,
          "id": "pixel_point",
          "label": "源帧像素坐标",
          "typeId": "vector2",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 10,
          "id": "score",
          "label": "位置条件分数",
          "typeId": "number",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 11,
          "id": "details",
          "label": "识别详情 JSON",
          "typeId": "string",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "multiStateUiRecognitionConfig": {
          "states": [],
          "target": "",
          "captureMode": "target",
          "waitMode": "once",
          "pollIntervalSeconds": 1.0,
          "previewImage": {
            "bytesBase64": "",
            "width": 0,
            "height": 0,
            "mimeType": "",
            "sourceLabel": ""
          },
          "ocrLanguage": "zh",
          "maxEvaluationMs": 5000
        }
      },
      "primarySearchModes": [
        {
          "key": "captureMode",
          "containerKey": "multiStateUiRecognitionConfig",
          "label": "抓取模式",
          "englishLabel": "Capture mode",
          "defaultValue": "target",
          "options": [
            {
              "value": "target",
              "label": "进程",
              "englishLabel": "Target"
            },
            {
              "value": "image",
              "label": "图像",
              "englishLabel": "Image"
            }
          ]
        },
        {
          "key": "waitMode",
          "containerKey": "multiStateUiRecognitionConfig",
          "label": "等待模式",
          "englishLabel": "Wait mode",
          "defaultValue": "once",
          "options": [
            {
              "value": "once",
              "label": "一次性",
              "englishLabel": "Once"
            },
            {
              "value": "poll",
              "label": "轮询",
              "englishLabel": "Poll"
            }
          ]
        }
      ],
      "presets": [
        {
          "title": "进程",
          "englishTitle": "Target",
          "searchTerms": [
            "target"
          ],
          "modeIdentity": "multiStateUiRecognitionConfig.captureMode",
          "initialValueOverrides": {
            "multiStateUiRecognitionConfig": {
              "captureMode": "target"
            }
          }
        },
        {
          "title": "图像",
          "englishTitle": "Image",
          "searchTerms": [
            "image"
          ],
          "modeIdentity": "multiStateUiRecognitionConfig.captureMode",
          "initialValueOverrides": {
            "multiStateUiRecognitionConfig": {
              "captureMode": "image"
            }
          }
        },
        {
          "title": "一次性",
          "englishTitle": "Once",
          "searchTerms": [
            "once"
          ],
          "modeIdentity": "multiStateUiRecognitionConfig.waitMode",
          "initialValueOverrides": {
            "multiStateUiRecognitionConfig": {
              "waitMode": "once"
            }
          }
        },
        {
          "title": "轮询",
          "englishTitle": "Poll",
          "searchTerms": [
            "poll"
          ],
          "modeIdentity": "multiStateUiRecognitionConfig.waitMode",
          "initialValueOverrides": {
            "multiStateUiRecognitionConfig": {
              "waitMode": "poll"
            }
          }
        }
      ]
    },
    {
      "id": "vision.target_screenshot",
      "title": "截图",
      "englishTitle": "Screenshot",
      "categoryId": "catalog.tool",
      "description": "按 screen:、android:、window: 目标信息截取一帧并输出图像。范围默认左上(0,0)到右下(1,1)；显式目标不存在时失败，不改抓其他目标。",
      "userCreatable": true,
      "removable": true,
      "supportsPublicValue": false,
      "introducedInAppVersion": "1.0.0",
      "schemaAvailable": true,
      "defaultInputPorts": [
        {
          "index": 0,
          "id": "exec_in",
          "label": "执行",
          "typeId": "execution",
          "direction": "input",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "target",
          "label": "目标字符串",
          "typeId": "string",
          "direction": "input",
          "allowsDynamicLabel": false
        }
      ],
      "defaultOutputPorts": [
        {
          "index": 0,
          "id": "exec_out",
          "label": "完成截图",
          "typeId": "execution",
          "direction": "output",
          "allowsDynamicLabel": false
        },
        {
          "index": 1,
          "id": "image",
          "label": "图像",
          "typeId": "visual_media",
          "direction": "output",
          "allowsDynamicLabel": false
        }
      ],
      "defaultValueOverrides": {
        "target": ""
      }
    }
  ]
}
