observatory stuff

This commit is contained in:
2026-06-22 23:05:05 +02:00
parent 1bdb518a94
commit 4ef04dd5e5
22 changed files with 1005 additions and 159 deletions

View File

@@ -11,12 +11,15 @@ from .load import (
latest_period,
load_budget,
load_expense_records,
load_market_signals,
load_membership,
load_monthly_ledger,
load_payment_records,
load_pricing_models,
load_product,
load_value_range,
)
from .pricing_context import build_cost_floor, build_market_price_view, build_value_range_view
def _serialize(value: Any) -> Any:
@@ -72,6 +75,9 @@ def build_dashboard_payload(data_dir: Path | None = None, period: str | None = N
}
)
value_range_raw = load_value_range(root)
market_raw = load_market_signals(root)
return _serialize(
{
"design_reference": "https://claude.ai/design/p/fb2eef8c-c1fc-4c75-bff4-3782552e5511",
@@ -85,6 +91,9 @@ def build_dashboard_payload(data_dir: Path | None = None, period: str | None = N
"members": members,
"payments": payments,
"expense_record_count": len(expenses),
"cost_floor": build_cost_floor(snapshot, models),
"value_range": build_value_range_view(value_range_raw, snapshot, product, models),
"market_price": build_market_price_view(market_raw),
"infrastructure": {
"domains": _load_json_catalog(root, "domains.json"),
"virtual_servers": _load_json_catalog(root, "virtual_servers.json"),