build(agent): new-agents-4#58ba63 iteration

This commit is contained in:
agent-58ba63c88b4c9625 2026-04-20 17:08:22 +02:00
parent 59943d9ce6
commit 22c492a570
1 changed files with 19 additions and 0 deletions

View File

@ -30,6 +30,9 @@ def delta_sync(old_ir: Dict[str, Any], new_ir: Dict[str, Any]) -> Dict[str, Any]
"assets_added": sorted(list(new_assets - old_assets)),
"assets_removed": sorted(list(old_assets - new_assets)),
"constraints_changed": {}, # naive: compute by key presence and value change
"execution_policy_added": [],
"execution_policy_removed": [],
"objectives_changed": {}, # {<objective_key>: {"old": <old>, "new": <new>}}
"digest": _digest(new_ir),
}
@ -42,4 +45,20 @@ def delta_sync(old_ir: Dict[str, Any], new_ir: Dict[str, Any]) -> Dict[str, Any]
if ov != nv:
delta["constraints_changed"][k] = {"old": ov, "new": nv}
# Execution policy delta (order-insensitive for MVP)
old_policy = set(old_ir.get("execution_policy", []) or [])
new_policy = set(new_ir.get("execution_policy", []) or [])
delta["execution_policy_added"] = sorted(list(new_policy - old_policy))
delta["execution_policy_removed"] = sorted(list(old_policy - new_policy))
# Objectives delta (basic presence/absence and value changes)
old_obj = set(old_ir.get("objectives", []) or [])
new_obj = set(new_ir.get("objectives", []) or [])
if old_obj != new_obj:
# For MVP, record added and removed objectives explicitly
delta["objectives_changed"] = {
"added": sorted(list(new_obj - old_obj)),
"removed": sorted(list(old_obj - new_obj)),
}
return delta