context_builder.py #1

  • //
  • p4mona/
  • dev/
  • p4-rca-agent/
  • p4rca/
  • context_builder.py
  • View
  • Commits
  • Open Download .zip Download (1023 B)
"""Context bundle assembly for SLM reasoning (Phase 2).

Given a CandidateIncident, assembles the full structured JSON context
bundle to submit to the SLM layer.
"""
from __future__ import annotations

import logging
from pathlib import Path
from typing import Any

from .models import CandidateIncident

logger = logging.getLogger(__name__)


class ContextBuilder:
    """Assembles the context bundle from a CandidateIncident.

    The bundle includes: parsed log window, monitor snapshots, lock
    contention summary, syslog entries, RAG hits, and server metadata.
    """

    def __init__(self, db_path: Path, rag=None) -> None:
        """
        Args:
            db_path: SQLite rolling window database.
            rag: Optional RAG retriever (Phase 3). Pass None to skip retrieval.
        """
        raise NotImplementedError

    def build(self, incident: CandidateIncident) -> dict[str, Any]:
        """Build and return the context bundle as a dict (JSON-serializable)."""
        raise NotImplementedError
# Change User Description Committed
#1 32636 bot_Claude_Anthropic Scaffold p4-rca-agent repo: directory structure, data models, layer stubs, test fixtures, config, docs.
Covers briefing tasks 2 and 3.
#review-32637 @robert_cowham @tom_tyler