facets: cap entity + activity rendering in facet_summaries()
Add keyword-only max_entities_per_facet (default 20) and
max_activities_per_facet (default 15) to facet_summaries(). Entities
are ranked by (observation_count desc, last_observed desc, name asc)
via a direct observation-file scan; activities preserve
get_facet_activities() order. When a cap trips, emit a single
trailing markdown bullet "- _and {N} more entities_" /
"- _and {N} more activities_" at the matching indent. Passing None
disables each cap. Principal filtering runs before the cap so the
principal never consumes budget.
Single production caller think/prompts.py:183 keeps today's API and
picks up default caps automatically.
Spec: cpo/specs/in-flight/facet-summaries-entity-cap.md
Co-authored-by: Codex <codex@openai.com>