24 lines
725 B
Python
24 lines
725 B
Python
|
|
# ruff: noqa: S101
|
||
|
|
"""Template size guardrails for injected heartbeat context."""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
HEARTBEAT_CONTEXT_LIMIT = 20_000
|
||
|
|
TEMPLATES_DIR = Path(__file__).resolve().parents[1] / "templates"
|
||
|
|
|
||
|
|
|
||
|
|
def test_heartbeat_templates_fit_in_injected_context_limit() -> None:
|
||
|
|
"""Heartbeat templates must stay under gateway injected-context truncation limit."""
|
||
|
|
targets = (
|
||
|
|
"HEARTBEAT_LEAD.md",
|
||
|
|
"HEARTBEAT_AGENT.md",
|
||
|
|
"MAIN_HEARTBEAT.md",
|
||
|
|
)
|
||
|
|
for name in targets:
|
||
|
|
size = (TEMPLATES_DIR / name).stat().st_size
|
||
|
|
assert size <= HEARTBEAT_CONTEXT_LIMIT, (
|
||
|
|
f"{name} is {size} chars (limit {HEARTBEAT_CONTEXT_LIMIT})"
|
||
|
|
)
|