# CCORE-Deployment-Flow

Источник: [ CCORE-Deployment-Flow.md ](https://github.com/kagvi13/HMP/blob/main/docs/CCORE-Deployment-Flow.md)

# 🛠️ Поток установки потомка на новом хосте (CCore Deployment Flow)

> Этот документ описывает процесс развертывания нового CCore-потомка на новом хосте.  
> Развертывание на том же ПК проще и уже описано в разделе "Создание потомков" [описания REPL-цикла](https://kagvi13.github.io/HMP/HMP-agent-REPL-cycle).

## 1. Инициация
* Родительский агент формирует универсальный **модуль развертывания** под целевую ОС.
* Модуль включает:
  - шаблон запуска и инициализации;
  - ссылки (magnet/HTTP) на актуальные сборки и внешние компоненты;
  - `bootstrap.txt` с адресом родителя (а также с другими узлами на выбор родителя) для первичной синхронизации.

## 2. Автоматическая установка
* Проверка окружения (наличие интерпретатора, зависимостей, сетевых модулей).
* Установка недостающих компонентов.
* Автоматическая настройка параметров (например, выбор свободных портов).

## 3. Ошибки и обработка
* **Технические сбои** контролируются CCore-родителем:
  - выбор альтернативных билдов;
  - подмена конфликтующих параметров;
  - повторные попытки установки.
* **Критические ситуации** (затрагивающие интересы пользователя) требуют явного согласия:
  - перезагрузка;
  - обновление, нарушающее совместимость;
  - вмешательство в используемые приложения.

## 4. Финализация
* Создание рабочей папки `../CCORE-[DID]`.
* Инициализация базы данных потомка.
* Запуск REPL-цикла потомка.
* Двусторонняя регистрация в таблице `agent_peers` (у родителя и у потомка).
* Итоговое уведомление пользователю:
  > ✅ Новый агент установлен и запущен.

---

## 🔄 Схема процесса

```mermaid
flowchart TD
    A[Инициация: Родитель формирует модуль] --> B[Проверка среды]
    B -->|ОК| C[Установка зависимостей]
    B -->|Конфликт| D[Автоисправление, CCore-родитель]
    D --> C
    C --> E[Создание папки CCORE-DID]
    C -->|Ошибка| D
    E --> F[Запуск потомка]
    F --> G[Синхронизация с родителем]
    G --> H[Сообщение пользователю]
    B -->|Критическая ошибка| U[Запрос согласия пользователя]
    C -->|Критическая ошибка| U
    U --> D
```

> **Примечание:** этап «Проверка среды → Автоисправление, CCore-родитель» на диаграмме отражает полный цикл анализа и исправления конфликтов в среде. После выполнения автоисправления процесс продолжается с этапа «Установка зависимостей», повторная проверка среды происходит только при критических ошибках.

