#!/usr/bin/env python3
"""AAE Lab 06: deterministic workflow vs bounded agentic branch vs human review."""

KNOWN_WORKFLOWS = {
    "nightly_backup": ["snapshot", "verify", "retain", "report"],
    "monthly_invoice": ["load_fields", "render", "validate", "send"],
}
AGENTIC_TASKS = {"investigate_503", "investigate_disk_growth"}

def route(task: str) -> str:
    if task in KNOWN_WORKFLOWS:
        return "WORKFLOW"
    if task in AGENTIC_TASKS:
        return "BOUNDED_AGENT"
    return "HUMAN_REVIEW"

def execute(task: str):
    decision = route(task)
    if decision == "WORKFLOW":
        return decision, KNOWN_WORKFLOWS[task]
    if decision == "BOUNDED_AGENT":
        return decision, ["collect_baseline", "choose_next_diagnostic", "validate_tool_call", "summarize"]
    return decision, ["stop", "request_human_decision"]

print("AAE Lab 06 — choose the simplest adequate control flow\n")
cases = ["nightly_backup", "investigate_503", "monthly_invoice", "unknown_financial_action"]
results = {}
for task in cases:
    decision, steps = execute(task)
    results[task] = decision
    print(f"{task:26} → {decision:14} → {steps}")

assert results["nightly_backup"] == "WORKFLOW"
assert results["monthly_invoice"] == "WORKFLOW"
assert results["investigate_503"] == "BOUNDED_AGENT"
assert results["unknown_financial_action"] == "HUMAN_REVIEW"
print("\n✓ Known tasks stayed deterministic.")
print("✓ Diagnostic uncertainty used a bounded agentic branch.")
print("✓ Unsupported work failed closed to human review.")
