"""Run one ordinary function and read its actual local metrics. No model required."""
import json
from pathlib import Path
import tempfile
from soterias import Soterias


def invoice_total(amounts: list[int]) -> int:
    return sum(amounts)


directory = Path(tempfile.mkdtemp(prefix="soterias-first-run-")) / "metrics"
with Soterias(workflow="invoice-total", directory=directory) as sdk:
    total = sdk.run(invoice_total, [1200, 300])
    report = sdk.summary()
    assert total == 1500 and report["counts"]["raw"] == 1
    print(json.dumps({"total_minor_units": total,
                      "recorded_calls": report["counts"]["raw"],
                      "metrics_directory": str(directory)}))
