# TaskStop

Останавливает запущенную фоновую задачу — shell-команду, запущенного агента или удалённую сессию — по её runtime-handle. Используйте, чтобы вернуть ресурсы, отменить работу, которая больше не полезна, или восстановиться, когда задача зависла.

## Когда использовать

- Фоновая shell-команда работает дольше ожидаемого, и её результат вам больше не нужен.
- Локальный агент зациклился или застрял, и его нужно прервать.
- Пользователь сменил направление, и фоновую работу по прежнему направлению следует бросить.
- Удалённая сессия вот-вот таймаутнется или держит нужный вам ресурс.
- Нужен чистый старт перед запуском того же задания заново.

Предпочитайте давать коротко живущей фоновой работе завершиться самостоятельно. `TaskStop` — для случаев, когда продолжение бесполезно или активно вредно.

## Параметры

- `task_id` (string, обязательный): runtime-handle, возвращённый при старте фоновой задачи. Тот же идентификатор, что принимает `TaskOutput`, не `taskId` из списка задач.

## Примеры

### Пример 1

Остановить взбесившуюся фоновую shell-команду.

```
TaskStop(task_id: "bash_01HXYZ...")
```

Команда получает сигнал завершения; буферизованный вывод, записанный на текущий момент, остаётся читаемым по пути её вывода.

### Пример 2

Отменить запущенного агента после смены направления пользователем.

```
TaskStop(task_id: "agent_01ABCD...")
```

## Примечания

- `TaskStop` запрашивает завершение; мгновенного выключения он не гарантирует. Хорошо ведущие себя задачи выходят быстро, но процесс, занятый блокирующим I/O, может уходить чуть дольше.
- Остановка задачи не удаляет её вывод. Для фоновых shell-задач файл вывода на диске сохраняется и по-прежнему читаем через `Read`. Для агентов и сессий всё, что было захвачено до остановки, остаётся доступным через `TaskOutput`.
- Неизвестный `task_id` или уже завершённая задача возвращают ошибку или no-op. Это безопасно — можно вызывать `TaskStop` защитно, не проверяя статус предварительно.
- Если планируется перезапустить ту же работу, остановите старую задачу перед стартом новой, чтобы избежать двух параллельных запусков, гоняющихся за общими ресурсами (файлы, порты, строки БД).
- `TaskStop` не влияет на записи в списке задач команды. Чтобы отменить отслеживаемую задачу, обновите её статус на `deleted` через `TaskUpdate`.
