toPromptString method
Format this element as a human-readable string for the LLM prompt.
Implementation
String toPromptString() {
final buffer = StringBuffer();
// Type prefix
final typeStr = switch (type) {
UiElementType.button => '[Button]',
UiElementType.textField => '[TextField]',
UiElementType.header => '[Header]',
UiElementType.slider => '[Slider]',
UiElementType.link => '[Link]',
UiElementType.checkbox => '[Checkbox]',
UiElementType.toggle => '[Toggle]',
UiElementType.scrollable => '[Scrollable]',
UiElementType.image => '[Image]',
UiElementType.text => '[Text]',
UiElementType.unknown => '',
};
buffer.write('$typeStr "$label"');
if (value != null && value!.isNotEmpty) {
buffer.write(' (value: "$value")');
}
if (isChecked != null) {
buffer.write(isChecked! ? ' [checked]' : ' [unchecked]');
}
if (!isEnabled) {
buffer.write(' [disabled]');
}
if (availableActions.isNotEmpty) {
buffer.write(' {${availableActions.join(', ')}}');
}
if (parentLabels.isNotEmpty) {
buffer.write(' in context: [${parentLabels.join(', ')}]');
}
return buffer.toString();
}