| from dataclasses import dataclass | |
| from typing import Any | |
| from pydantic import BaseModel, Field | |
| from ..base_agent import ArchonDependencies | |
| class DocumentDependencies(ArchonDependencies): | |
| """Dependencies for document operations.""" | |
| project_id: str = "" # Required but needs default value due to parent class having defaults | |
| current_document_id: str | None = None | |
| progress_callback: Any | None = None # Callback for progress updates | |
| class DocumentOperation(BaseModel): | |
| """Structured output for document operations.""" | |
| operation_type: str = Field(description="Type of operation: create, update, delete, query") | |
| document_id: str | None = Field(description="ID of the document affected") | |
| document_type: str | None = Field(description="Type of document: prd, technical_spec, meeting_notes, etc.") | |
| title: str | None = Field(description="Document title") | |
| changes_made: list[str] = Field(description="List of specific changes made") | |
| success: bool = Field(description="Whether the operation was successful") | |
| message: str = Field(description="Human-readable message about the operation") | |
| content_preview: str | None = Field(description="Preview of the document content (first 200 chars)") | |