ReMe/reme/core/schema/truncation_result.py

35 lines
1.4 KiB
Python

"""Truncation result schema for command output truncation."""
from typing import Literal
from pydantic import BaseModel, Field
class TruncationResult(BaseModel):
"""Result of output truncation operation.
Attributes:
content: The truncated content
truncated: Whether truncation occurred
total_lines: Total number of lines in original output
output_lines: Number of lines in truncated output
total_bytes: Total bytes in original output
output_bytes: Bytes in truncated output
truncated_by: What caused truncation ('lines' or 'bytes')
last_line_partial: Whether last line was partially truncated
"""
content: str = Field(description="The truncated content")
truncated: bool = Field(description="Whether truncation occurred")
total_lines: int = Field(description="Total number of lines in original output")
output_lines: int = Field(description="Number of lines in truncated output")
total_bytes: int = Field(description="Total bytes in original output")
output_bytes: int = Field(description="Bytes in truncated output")
truncated_by: Literal["lines", "bytes"] | None = Field(
default=None,
description="What caused truncation ('lines' or 'bytes')",
)
last_line_partial: bool = Field(
default=False,
description="Whether last line was partially truncated",
)