Imports:
  - Types:
      - MCPTool
    From: sententia/endpoints
  - Types:
      - Storage
    Usages:
      - reading
    From: sententia/storage

Usages:
  conventions: .goga/usages/conventions.md
  pydantic: .goga/usages/cooks/pydantic.md
  hexagonal: .goga/usages/cooks/hexagonal.md

Annotations: |
  Использовать `conventions` для правил написания кода и тестов.

  MCP tool для чтения содержимого файла.
  Использовать практику `hexagonal` для понимания роли адаптера.
  Использовать практику `reading` для чтения файлов.

---

"FilesToolResult()":
  location: models.py
  annotations: |
    Модель результата files для MCP tool.
    Использовать `pydantic` для реализации (conventions: kw_only=True, дефолты).
  properties:
    text -> str: |
      Содержимое файла. Значение по умолчанию — пустая строка.
    source -> str: |
      Путь к файлу. Значение по умолчанию — пустая строка.

"MCPTool::FilesTool(storage: Storage)":
  location: files.py
  annotations: |
    MCP tool для чтения содержимого файла.

    `storage`: экземпляр `Storage` для чтения файлов.

    Использовать практику `reading` для чтения файлов.
    Использовать практику `hexagonal` для понимания роли адаптера.
  properties:
    name -> str: |
      "files"
    description -> str: |
      "Read file content by path"
  methods:
    "execute(path: str) -> result:FilesToolResult": |
      Чтение содержимого файла.

      `path`: относительный путь к файлу.
      `result`: `FilesToolResult` с полями text и source.

      Если файл не найден — tool error.
      Использовать практику `reading` для чтения файлов.

---

Author: Goga
CreatedAt: 16/05/26
Description: |
  MCP tool файлов — files.
