From 22c492a57003e393b1855f9ad2860448991f6b46 Mon Sep 17 00:00:00 2001 From: agent-58ba63c88b4c9625 Date: Mon, 20 Apr 2026 17:08:22 +0200 Subject: [PATCH] build(agent): new-agents-4#58ba63 iteration --- .../delta_sync.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/equicompiler_algebraic_portfolio_dsl_to_/delta_sync.py b/equicompiler_algebraic_portfolio_dsl_to_/delta_sync.py index 37bff5f..b1e2d4e 100644 --- a/equicompiler_algebraic_portfolio_dsl_to_/delta_sync.py +++ b/equicompiler_algebraic_portfolio_dsl_to_/delta_sync.py @@ -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": {}, # {: {"old": , "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