← back to ai-ken-git__cat-claude-statusline

Function bodies 3 total

All specs Real LLM only Function bodies
meter function · python · L22-L52 (31 LOC)
statusline.py
def meter(usage, label, width=12, ctx_mode=False):
    """Usage meter: starts at 0%, fills up as usage increases."""
    if not isinstance(usage, (int, float)):
        return f"{CAT_DEFAULT} {label}:---"

    if ctx_mode:
        if usage < 30:
            color = GREEN
            cat = CAT_HAPPY
        elif usage < 50:
            color = YELLOW
            cat = CAT_NORMAL
        else:
            color = RED
            cat = CAT_SAD
    else:
        if usage < 50:
            color = GREEN
            cat = CAT_HAPPY
        elif usage < 80:
            color = YELLOW
            cat = CAT_NORMAL
        else:
            color = RED
            cat = CAT_SAD

    clamped = max(0, min(usage, 100))
    filled = int(clamped / 100 * width)
    bar = "\u2588" * filled + "\u2591" * (width - filled)

    return f"{cat} {color}{label}:{usage:.0f}% {bar}{RESET}"
countdown function · python · L55-L69 (15 LOC)
statusline.py
def countdown(resets_at):
    """Calculate time remaining until rate limit reset."""
    if not isinstance(resets_at, (int, float)):
        return ""
    try:
        diff = resets_at - time.time()
        if diff <= 0:
            return ""
        h = int(diff // 3600)
        m = int((diff % 3600) // 60)
        if h > 0:
            return f"{h}h{m:02d}m"
        return f"{m}m"
    except Exception:
        return ""
main function · python · L72-L143 (72 LOC)
statusline.py
def main():
    try:
        data = json.load(sys.stdin)
    except (json.JSONDecodeError, ValueError):
        print("cat-claude-statusline: waiting for data...")
        return

    # --- Extract fields safely (per-field protection) ---
    def safe_dict(val):
        return val if isinstance(val, dict) else {}

    ctx = safe_dict(data.get("context_window"))
    used = ctx.get("used_percentage")

    rl = safe_dict(data.get("rate_limits"))
    five_h = safe_dict(rl.get("five_hour"))
    seven_d = safe_dict(rl.get("seven_day"))
    five_h_used = five_h.get("used_percentage")
    seven_d_used = seven_d.get("used_percentage")
    five_h_resets = five_h.get("resets_at")
    seven_d_resets = seven_d.get("resets_at")

    model = safe_dict(data.get("model"))
    model_name = model.get("display_name") if isinstance(model.get("display_name"), str) else ""

    cost_data = safe_dict(data.get("cost"))
    total_cost = cost_data.get("total_cost_usd")

    workspace = safe_dict(data.get("worksp