MCPcopy
hub / github.com/langroid/langroid / _format_entry

Method _format_entry

langroid/utils/html_logger.py:516–711  ·  view source on GitHub ↗

Format a log entry as HTML. Args: fields: ChatDocLoggerFields containing all log information Returns: HTML string for the entry

(self, fields: BaseModel)

Source from the content-addressed store, hash-verified

514 self.logger.error(f"Failed to log entry: {e}")
515
516 def _format_entry(self, fields: BaseModel) -> str:
517 """Format a log entry as HTML.
518
519 Args:
520 fields: ChatDocLoggerFields containing all log information
521
522 Returns:
523 HTML string for the entry
524 """
525 entry_id = f"entry_{self.entry_counter}"
526
527 # Get all relevant fields
528 responder = str(getattr(fields, "responder", "UNKNOWN"))
529 task_name = getattr(fields, "task_name", "root")
530 # TODO (CLAUDE) display sender_entity in parens right after responder,
531 # other than LLM, e.g. AGENT (USER)
532 sender_entity = str(getattr(fields, "sender_entity", ""))
533 tool = getattr(fields, "tool", "")
534 tool_type = getattr(fields, "tool_type", "")
535 content = getattr(fields, "content", "")
536 recipient = getattr(fields, "recipient", "")
537
538 # Determine CSS class based on responder
539 responder_upper = responder.upper()
540 if "USER" in responder_upper:
541 css_class = "user"
542 elif "LLM" in responder_upper:
543 css_class = "llm"
544 elif "AGENT" in responder_upper:
545 css_class = "agent"
546 elif "SYSTEM" in responder_upper:
547 css_class = "system"
548 else:
549 css_class = "other"
550
551 # Determine opacity class based on mark
552 mark = getattr(fields, "mark", "")
553 opacity_class = "important" if mark == "*" else "faded"
554
555 # Start building the entry
556 html_parts = [
557 f'<div class="entry {css_class} {opacity_class}" id="{entry_id}">'
558 ]
559
560 # Build smart header
561 entity_parts = [] # Main header line with entity info
562 content_preview = "" # Second line with content preview
563
564 # Add task name if not root
565 if task_name and task_name != "root":
566 entity_parts.append(task_name)
567
568 # Handle different responder types
569 if "USER" in responder_upper:
570 # Add responder with sender_entity in parens if different
571 if sender_entity and sender_entity != responder:
572 entity_parts.append(f"USER ({sender_entity})")
573 else:

Callers 1

logMethod · 0.95

Calls 4

_format_tool_sectionMethod · 0.95
splitMethod · 0.45

Tested by

no test coverage detected