## ADDED Requirements

### Requirement: Сущность адаптера логирования
Адаптер MUST предоставлять `TalkerCherryPickObserver`, реализующий `CherryPickObserver`.

#### Scenario: Доступность адаптера
- **WHEN** разработчик импортирует пакет адаптера
- **THEN** `TalkerCherryPickObserver` доступен для использования

### Requirement: Жизненный цикл наблюдателя
Наблюдатель MUST подключаться при создании scope и работать в течение жизненного цикла этого scope.

#### Scenario: Подключение наблюдателя
- **WHEN** observer передан при открытии scope
- **THEN** все DI‑события в scope направляются в Talker

### Requirement: Маппинг уровней логирования
Адаптер MUST маршрутизировать DI‑события в Talker с корректными уровнями (info/warning/verbose/handle).

#### Scenario: Диагностика
- **WHEN** DI‑ядро генерирует диагностическое событие
- **THEN** адаптер логирует его как verbose

#### Scenario: Ошибка резолва
- **WHEN** DI‑ядро генерирует ошибку
- **THEN** адаптер логирует ее через `handle` и включает stack trace при наличии

### Requirement: Ненавязчивость поведения
Адаптер MUST быть наблюдателем и не изменять DI‑поведение, жизненный цикл или кэширование.

#### Scenario: Разрешение с адаптером
- **WHEN** адаптер подключен
- **THEN** резолв и поведение DI не изменяются, кроме появления логов

### Requirement: Ошибки логирования
Адаптер MUST передавать ошибки логирования как есть и не содержит собственной обработки исключений.

#### Scenario: Исключение в Talker
- **WHEN** Talker выбрасывает исключение при логировании
- **THEN** исключение пробрасывается вызывающему коду

### Requirement: Точки расширения
Адаптер MUST позволять использовать пользовательские настройки Talker без изменения адаптера.

#### Scenario: Кастомная конфигурация Talker
- **WHEN** пользователь передает кастомный Talker
- **THEN** адаптер использует переданную конфигурацию для всех DI‑событий
