chore: import upstream snapshot with attribution
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
"""Edge condition helpers used by workflow YAML definitions."""
|
||||
|
||||
import re
|
||||
|
||||
def contains_keyword(data: str) -> bool:
|
||||
"""Check if data contains the keyword 'trigger'."""
|
||||
return "trigger" in data.lower()
|
||||
|
||||
def length_greater_than_5(data: str) -> bool:
|
||||
"""Check if data length is greater than 5."""
|
||||
return len(data) > 5
|
||||
|
||||
def always_false(data: str) -> bool:
|
||||
"""Always return false for testing."""
|
||||
return False
|
||||
|
||||
def not_contains_keyword(data: str) -> bool:
|
||||
"""Check if data contains the keyword 'trigger'."""
|
||||
return "trigger" not in data.lower()
|
||||
|
||||
def code_pass(data: str) -> bool:
|
||||
return "==CODE EXECUTION FAILED==" not in data
|
||||
|
||||
def code_fail(data: str) -> bool:
|
||||
return "==CODE EXECUTION FAILED==" in data
|
||||
|
||||
def _extract_verdict(data: str) -> str | None:
|
||||
"""Parse `Verdict: CONTINUE|STOP` markers from agent outputs."""
|
||||
match = re.search(r"verdict\s*:\s*(\w+)", data, re.IGNORECASE)
|
||||
if not match:
|
||||
return None
|
||||
return match.group(1).upper()
|
||||
|
||||
|
||||
def need_reflection_loop(data: str) -> bool:
|
||||
"""Return True when the Reasoner asks for another Reflexion iteration."""
|
||||
verdict = _extract_verdict(data)
|
||||
if verdict is None:
|
||||
return True # Default to continuing until STOP is explicit
|
||||
return verdict not in {"STOP", "DONE"}
|
||||
|
||||
|
||||
def should_stop_loop(data: str) -> bool:
|
||||
"""Return True when the Reasoner signals the Reflexion loop can stop."""
|
||||
verdict = _extract_verdict(data)
|
||||
if verdict is None:
|
||||
return False
|
||||
return verdict in {"STOP", "DONE"}
|
||||
Reference in New Issue
Block a user