from __future__ import annotations from idea153_aidmesh_mobile_first import ContractScriptCompiler, PlanDelta, PlanLedger, merge_deltas, replay_ledger, solve_program from idea153_aidmesh_mobile_first.adapters import InventoryItem, RouteWaypoint, inventory_to_contract, route_to_contract def test_compiler_and_solver_select_high_priority_tasks(): source = """ site "field-clinic-7" capacity meds 10 capacity water 6 task triage priority 10 demand meds=4, water=2 task shelter priority 4 demand water=4 """ module = ContractScriptCompiler().compile(source) assert module.digest result = solve_program(module.program) assert [action.task for action in result.selected_tasks] == ["triage", "shelter"] assert result.remaining_capacity == {"meds": 6, "water": 0} def test_plan_deltas_sign_merge_and_replay(): secret = "shared-key" delta_a = PlanDelta( device_id="truck-1", sequence=1, parents=[], changes={"inventory": {"meds": 12}}, summary="restocked meds", timestamp="2026-04-26T20:00:00Z", ).sign(secret) delta_b = PlanDelta( device_id="drone-2", sequence=2, parents=[delta_a.signature], changes={"routes": {"drone-2": ["clinic", "depot"]}}, summary="published route", timestamp="2026-04-26T20:01:00Z", ).sign(secret) merged = merge_deltas({}, [delta_b, delta_a], secret) assert merged["inventory"]["meds"] == 12 assert merged["routes"]["drone-2"] == ["clinic", "depot"] replay = replay_ledger({}, [delta_a, delta_b], secret) assert replay.state["inventory"]["meds"] == 12 assert replay.applied == ["truck-1:1", "drone-2:2"] def test_adapters_generate_valid_contracts(): inventory_program = inventory_to_contract( "warehouse-1", [InventoryItem(name="bandages", quantity=20, criticality=8), InventoryItem(name="saline", quantity=12, criticality=6)], ) route_program = route_to_contract( "airstrip-a", (0.0, 0.0), [RouteWaypoint(name="north-hill", x=2.0, y=3.0, priority=9), RouteWaypoint(name="river-base", x=1.0, y=1.0, priority=4)], ) assert solve_program(inventory_program).selected_tasks assert solve_program(route_program).selected_tasks ledger = PlanLedger(secret="shared-key") delta = PlanDelta( device_id="inventory-1", sequence=1, parents=[], changes={"inventory": {"bandages": 20}}, summary="inventory snapshot", timestamp="2026-04-26T20:02:00Z", ).sign("shared-key") ledger.append(delta) assert ledger.state["inventory"]["bandages"] == 20