From 3c7dffc06dea501e312b73c559c4af24c8d740df Mon Sep 17 00:00:00 2001
From: Armatik <s.fomchenkov@yandex.ru>
Date: Fri, 16 Aug 2024 22:42:02 +0300
Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE?=
 =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0=20c=20OCAB=20=D0=B2=20Karkas?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                                    |  2 +-
 CONTRIBUTORS                                  |  8 ----
 README.md                                     | 46 +++++++++----------
 docs/DEV.md                                   | 12 ++---
 docs/MODULES-SPEC.md                          |  8 ++--
 ocab.code-workspace                           | 10 ++--
 pyproject.toml                                |  8 ++--
 scripts/init.py                               |  6 +--
 scripts/module.py                             |  4 +-
 src/altlinux/Dockerfile                       |  6 +--
 src/altlinux/README.md                        |  4 +-
 src/altlinux/altlinux/__main__.py             | 22 ++++-----
 src/altlinux/poetry.lock                      | 10 ++--
 src/altlinux/pyproject.toml                   |  4 +-
 src/ocab_core/README.md                       |  4 +-
 src/ocab_core/ocab_core/__init__.py           |  2 +-
 src/ocab_core/ocab_core/logger.py             |  2 +-
 src/ocab_core/ocab_core/main.py               | 20 ++++----
 .../loaders/fs_loader/FSLoader.py             | 12 ++---
 .../unsafe_fs_loader/UnsafeFSLoader.py        |  2 +-
 .../modules_system/modules_manager.py         |  2 +-
 .../modules_system/public_api/__init__.py     |  2 +-
 .../modules_system/public_api/public_api.py   | 10 ++--
 .../ocab_core/modules_system/safe/policy.py   |  4 +-
 .../modules_system/safe/zope_guards.py        |  2 +-
 src/ocab_core/ocab_core/singleton.py          |  2 +-
 src/ocab_core/poetry.lock                     |  6 +--
 src/ocab_core/pyproject.toml                  |  4 +-
 src/ocab_modules/README.md                    |  8 ++--
 src/ocab_modules/ocab_modules/__init__.py     |  2 +-
 src/ocab_modules/ocab_modules/lib.py          | 12 ++---
 .../ocab_modules/standard/admin/handlers.py   |  4 +-
 .../ocab_modules/standard/admin/info.json     |  2 +-
 .../ocab_modules/standard/admin/main.py       |  2 +-
 .../ocab_modules/standard/admin/routers.py    |  2 +-
 .../standard/command_helper/README.md         |  2 +-
 .../standard/command_helper/info.json         |  2 +-
 .../standard/command_helper/main.py           |  2 +-
 .../ocab_modules/standard/config/README.md    |  2 +-
 .../standard/config/config_manager.py         |  2 +-
 .../ocab_modules/standard/config/info.json    |  2 +-
 .../ocab_modules/standard/config/main.py      |  2 +-
 .../standard/config/miniapp_ui.py             |  4 +-
 .../standard/config/tests/test_config.py      |  2 +-
 .../ocab_modules/standard/database/README.md  |  2 +-
 .../ocab_modules/standard/database/db_api.py  |  4 +-
 .../ocab_modules/standard/database/info.json  |  2 +-
 .../ocab_modules/standard/filters/README.md   |  2 +-
 .../ocab_modules/standard/filters/filters.py  |  6 +--
 .../ocab_modules/standard/filters/info.json   |  2 +-
 .../standard/fsm_database_storage/fsm.py      |  6 +--
 .../standard/fsm_database_storage/info.json   |  2 +-
 .../ocab_modules/standard/help/info.json      | 34 +++++++-------
 .../ocab_modules/standard/help/main.py        |  4 +-
 .../ocab_modules/standard/info/handlers.py    |  6 +--
 .../ocab_modules/standard/info/info.json      |  2 +-
 .../ocab_modules/standard/info/main.py        |  2 +-
 .../standard/message_processing/info.json     |  2 +-
 .../message_processing/message_api.py         |  4 +-
 .../ocab_modules/standard/miniapp/README.md   |  2 +-
 .../standard/miniapp/dash_telegram_auth.py    |  2 +-
 .../ocab_modules/standard/miniapp/info.json   | 40 ++++++++--------
 .../ocab_modules/standard/miniapp/lib.py      |  8 ++--
 .../ocab_modules/standard/miniapp/main.py     |  4 +-
 .../ocab_modules/standard/report/info.json    | 38 +++++++--------
 .../ocab_modules/standard/report/main.py      |  6 +--
 .../ocab_modules/standard/roles/README.md     |  2 +-
 .../ocab_modules/standard/roles/info.json     |  2 +-
 .../ocab_modules/standard/roles/main.py       |  4 +-
 .../ocab_modules/standard/roles/roles.py      |  6 +--
 .../ocab_modules/standard/welcome/info.json   | 36 +++++++--------
 .../ocab_modules/standard/welcome/main.py     |  6 +--
 .../welcome/verifications_methods/base.py     |  2 +-
 src/ocab_modules/poetry.lock                  |  4 +-
 src/ocab_modules/pyproject.toml               |  4 +-
 75 files changed, 257 insertions(+), 265 deletions(-)
 delete mode 100644 CONTRIBUTORS

diff --git a/.gitignore b/.gitignore
index dddca8d..c747ee6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,6 @@ env
 .venv
 venv
 __pycache__
-OCAB.db
+Karkas.db
 config.yaml
 dist
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
deleted file mode 100644
index 39b759d..0000000
--- a/CONTRIBUTORS
+++ /dev/null
@@ -1,8 +0,0 @@
-Руководитель проекта:
-	- Семен Фомченков (@Armatik), e-mail: armatik@alt-gnome.ru
-
-Ведущие разработчики:
-	- Максим Слипенко (@Maks1m_S), e-mail: maxim@slipenko.com
-
-Участники проекта:
-	- Илья Женецкий (@ilyazheprog)
diff --git a/README.md b/README.md
index b9f8cd9..6cd4dc5 100644
--- a/README.md
+++ b/README.md
@@ -1,23 +1,23 @@
-# OCAB - Open Chat Ai Bot
+# Karkas - Open Chat Ai Bot
 
-## Что такое OCAB?
+## Что такое Karkas?
 
-OCAB - это платформа для разработки модульных Telegram-ботов, которая призвана упростить взаимодействие с чатами.
-OCAB предоставляет возможность расширять функциональность бота с помощью интеграции различных модулей.
+Karkas - это платформа для разработки модульных Telegram-ботов, которая призвана упростить взаимодействие с чатами.
+Karkas предоставляет возможность расширять функциональность бота с помощью интеграции различных модулей.
 Код платформы и набор стандартных модулей находятся в этом монорепозитории.
 
 ## Структура монорепозитория
 
-Монорепозиторий OCAB включает в себя:
-* **Ядро OCAB (src/ocab_core):** Содержит основные компоненты платформы, такие как система управления модулями,
+Монорепозиторий Karkas включает в себя:
+* **Ядро Karkas (src/karkas_core):** Содержит основные компоненты платформы, такие как система управления модулями,
   логирование и утилиты.
-* **Модули OCAB (src/ocab_modules):** Содержит стандартные и дополнительные модули, которые расширяют
-  функциональность ботов OCAB.
-* **Пример бота (src/gnomik):**  Пример реализации бота на платформе OCAB.
+* **Модули Karkas (src/karkas_blocks):** Содержит стандартные и дополнительные модули, которые расширяют
+  функциональность ботов Karkas.
+* **Пример бота (src/gnomik):**  Пример реализации бота на платформе Karkas.
 
 ## Модули
 
-Модули OCAB - это независимые компоненты, которые добавляют функциональность к боту.
+Модули Karkas - это независимые компоненты, которые добавляют функциональность к боту.
 
 ### Структура модуля
 
@@ -26,19 +26,19 @@ OCAB предоставляет возможность расширять фун
 ### Стандартные модули
 
 Стандартные модули предоставляют базовые функции для работы бота:
-* [admin](src/ocab_modules/ocab_modules/standard/admin/README.md) - модуль для модерирования чата.
-* [roles](src/ocab_modules/ocab_modules/standard/roles/README.md) - модуль ролей пользователей.
-* [config](src/ocab_modules/ocab_modules/standard/config/README.md) - модуль управления конфигурацией бота.
-* [database](src/ocab_modules/ocab_modules/standard/database/README.md) - модуль для работы с базой данных.
-* [fsm_database_storage](src/ocab_modules/ocab_modules/standard/fsm_database_storage/README.md) - модуль для хранения состояний FSM в базе данных.
-* [filters](src/ocab_modules/ocab_modules/standard/filters/README.md) - модуль, предоставляющий фильтры для aiogram.
-* [message_processing](src/ocab_modules/ocab_modules/standard/message_processing/README.md) - модуль обработки входящих сообщений.
-* [miniapp](src/ocab_modules/ocab_modules/standard/miniapp/README.md) - модуль для реализации веб-интерфейса бота.
-* [command_helper](src/ocab_modules/ocab_modules/standard/command_helper/README.md) - модуль для упрощения регистрации команд бота.
-* [info](src/ocab_modules/ocab_modules/standard/info/README.md) - модуль предоставления информации о пользователях и чатах.
+* [admin](src/karkas_blocks/karkas_blocks/standard/admin/README.md) - модуль для модерирования чата.
+* [roles](src/karkas_blocks/karkas_blocks/standard/roles/README.md) - модуль ролей пользователей.
+* [config](src/karkas_blocks/karkas_blocks/standard/config/README.md) - модуль управления конфигурацией бота.
+* [database](src/karkas_blocks/karkas_blocks/standard/database/README.md) - модуль для работы с базой данных.
+* [fsm_database_storage](src/karkas_blocks/karkas_blocks/standard/fsm_database_storage/README.md) - модуль для хранения состояний FSM в базе данных.
+* [filters](src/karkas_blocks/karkas_blocks/standard/filters/README.md) - модуль, предоставляющий фильтры для aiogram.
+* [message_processing](src/karkas_blocks/karkas_blocks/standard/message_processing/README.md) - модуль обработки входящих сообщений.
+* [miniapp](src/karkas_blocks/karkas_blocks/standard/miniapp/README.md) - модуль для реализации веб-интерфейса бота.
+* [command_helper](src/karkas_blocks/karkas_blocks/standard/command_helper/README.md) - модуль для упрощения регистрации команд бота.
+* [info](src/karkas_blocks/karkas_blocks/standard/info/README.md) - модуль предоставления информации о пользователях и чатах.
 
 ### Дополнительные официальные модули
 
-Дополнительные официальные модули разработаны командой OCAB и предоставляют расширенные возможности для бота:
-* [yandexgpt](src/ocab_modules/ocab_modules/external/yandexgpt/README.md) - модуль для интеграции с нейросетью YandexGPT.
-* [create_report_apps](src/ocab_modules/ocab_modules/external/create_report_apps/README.md) - модуль для создания отчетов об ошибках.
+Дополнительные официальные модули разработаны командой Karkas и предоставляют расширенные возможности для бота:
+* [yandexgpt](src/karkas_blocks/karkas_blocks/external/yandexgpt/README.md) - модуль для интеграции с нейросетью YandexGPT.
+* [create_report_apps](src/karkas_blocks/karkas_blocks/external/create_report_apps/README.md) - модуль для создания отчетов об ошибках.
diff --git a/docs/DEV.md b/docs/DEV.md
index 5962e19..9db59a5 100644
--- a/docs/DEV.md
+++ b/docs/DEV.md
@@ -1,10 +1,10 @@
 ## Настройка рабочего окружения
 
-Данная инструкция поможет вам настроить рабочее окружение для разработки OCAB.
+Данная инструкция поможет вам настроить рабочее окружение для разработки Karkas.
 
 ### Предварительные требования
 
-* **Python 3.12:** OCAB требует Python 3.12.
+* **Python 3.12:** Karkas требует Python 3.12.
 * **VSCode:** Рекомендуется использовать VSCode для разработки.
 * **Git:**  У вас должен быть установлен Git для клонирования репозитория.
 
@@ -12,18 +12,18 @@
 
 1. **Клонируйте репозиторий:**
    ```bash
-   git clone https://gitflic.ru/project/armatik/ocab.git
+   git clone https://gitflic.ru/project/alt-gnome/karkas.git
    ```
 
 2. **Откройте проект в VSCode:**
-   * Откройте папку `ocab` в VSCode.
-   * VSCode автоматически предложит открыть проект как workspace, используя файл `ocab.code-workspace`.
+   * Откройте папку `karkas` в VSCode.
+   * VSCode автоматически предложит открыть проект как workspace, используя файл `karkas.code-workspace`.
      Нажмите "Открыть Workspace", чтобы принять предложение.
 
 3. **Настройте Poetry:**
    * Установите Poetry, следуя инструкциям на официальном сайте: [https://python-poetry.org/docs/](https://python-poetry.org/docs/).
    * **Для каждого пакета:**
-     * Перейдите в папку пакета (например, `src/ocab_core`).
+     * Перейдите в папку пакета (например, `src/karkas_core`).
      * Выполните команду `poetry install`, чтобы установить зависимости пакета.
      * Poetry создаст виртуальное окружение внутри папки пакета (`.venv`).
 
diff --git a/docs/MODULES-SPEC.md b/docs/MODULES-SPEC.md
index 561e822..3445dd3 100644
--- a/docs/MODULES-SPEC.md
+++ b/docs/MODULES-SPEC.md
@@ -16,7 +16,7 @@
   "id": "standard.info",
   "name": "Info",
   "description": "Модуль с информацией",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {
@@ -50,7 +50,7 @@
 - `author`: Автор модуля.
 - `version`: Версия модуля в формате [SemVer](https://semver.org/).
 - `privileged`: Булево значение, указывающее, является ли модуль привилегированным.
-- `dependencies`: Объект, описывающий зависимости модуля от других **OCAB** модулей.
+- `dependencies`: Объект, описывающий зависимости модуля от других **Karkas** модулей.
     - `required`: Обязательные зависимости. Ключ - идентификатор модуля, значение - версия или объект `DependencyInfo`.
     - `optional`: Необязательные зависимости. Ключ - идентификатор модуля, значение - версия или объект `DependencyInfo`.
 - `pythonDependencies`: Объект, описывающий зависимости модуля от внешних Python пакетов.
@@ -80,7 +80,7 @@
 - Модуль выполняется в доверенной среде на основе RestrictedPython (это накладывает ряд ограничений).
 - Может импортировать только явно разрешенные модули, указанные в `pythonDependencies`,
   а также несколько стандартных модулей, необходимых для работы.
-- Имеет доступ к пакету `ocab_core.modules_system.public_api` для взаимодействия с ботом.
+- Имеет доступ к пакету `karkas_core.modules_system.public_api` для взаимодействия с ботом.
 
 **Привилегированный режим** (`privileged: true`):
 - Модуль выполняется без ограничений.
@@ -100,7 +100,7 @@
 
 ## Взаимодействие между модулями
 
-Модули могут взаимодействовать друг с другом через [API](../src/ocab_core/ocab_core/modules_system/public_api/__init__.py),
+Модули могут взаимодействовать друг с другом через [API](../src/karkas_core/karkas_core/modules_system/public_api/__init__.py),
 предоставляемое системой управления модулями.
 
 Например, есть функция `get_module`. Она позволяет получить модуль или предоставляемые им объекты по его
diff --git a/ocab.code-workspace b/ocab.code-workspace
index 96f794e..3aad916 100644
--- a/ocab.code-workspace
+++ b/ocab.code-workspace
@@ -1,16 +1,16 @@
 {
 	"folders": [
 		{
-			"name": "OCAB Monorepo Root",
+			"name": "Karkas Monorepo Root",
 			"path": ".",
 		},
 		{
-			"name": "OCAB Modules",
-			"path": "src/ocab_modules"
+			"name": "Karkas Blocks",
+			"path": "src/karkas_blocks"
 		},
 		{
-			"name": "OCAB Core",
-			"path": "src/ocab_core"
+			"name": "Karkas Core",
+			"path": "src/karkas_core"
 		},
 		{
 			"name": "Gnomik",
diff --git a/pyproject.toml b/pyproject.toml
index f8cb63c..d35c7d7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,7 +1,7 @@
 [tool.poetry]
-name = "ocab-monorepo"
+name = "karkas-monorepo"
 version = "2.0.0"
-description = "OCAB is a modular Telegram bot"
+description = "Karkas is a modular Telegram bot"
 license = "GPL-3.0-only"
 authors = ["Семён Фомченков <s.fomchenkov@yandex.ru>"]
 maintainers = [
@@ -11,13 +11,13 @@ maintainers = [
     "Максим Слипенко <maxim@slipenko.com>"
 ]
 readme = "README.md"
-repository = "https://gitflic.ru/project/armatik/ocab"
+repository = "https://gitflic.ru/project/alt-gnome/karkas"
 packages = [
     { include = "scripts" }
 ]
 
 [tool.poetry.urls]
-"Bug Tracker" = "https://gitflic.ru/project/armatik/ocab/issue?status=OPEN"
+"Bug Tracker" = "https://gitflic.ru/project/alt-gnome/karkas/issue?status=OPEN"
 
 [tool.poetry.scripts]
 test = 'scripts.test:main'
diff --git a/scripts/init.py b/scripts/init.py
index 362e4da..c4d9382 100644
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -4,9 +4,9 @@ from pathlib import Path
 
 def main():
     pwd = Path().cwd()
-    dir_core = pwd / "src" / "ocab_core"
-    dir_modules_standard = pwd / "src" / "ocab_modules" / "standard"
-    dir_modules_external = pwd / "src" / "ocab_modules" / "external"
+    dir_core = pwd / "src" / "karkas_core"
+    dir_modules_standard = pwd / "src" / "karkas_blocks" / "standard"
+    dir_modules_external = pwd / "src" / "karkas_blocks" / "external"
 
     json = {
         "core": str(dir_core),
diff --git a/scripts/module.py b/scripts/module.py
index 88e13c3..2e9522b 100644
--- a/scripts/module.py
+++ b/scripts/module.py
@@ -4,14 +4,14 @@ import os
 
 DEFAULTS = {
     "description": "Очень полезный модуль",
-    "author": "OCAB Team",
+    "author": "Karkas Team",
     "version": "1.0.0",
     "privileged": "false",
 }
 
 
 def create_module(args):
-    module_dir = os.path.join("src/ocab_modules/standard", args.module_name)
+    module_dir = os.path.join("src/karkas_blocks/standard", args.module_name)
     os.makedirs(module_dir, exist_ok=True)
 
     module_info = {
diff --git a/src/altlinux/Dockerfile b/src/altlinux/Dockerfile
index c789f02..8a1f469 100644
--- a/src/altlinux/Dockerfile
+++ b/src/altlinux/Dockerfile
@@ -6,9 +6,9 @@ COPY . /app
 
 # Фикс
 
-RUN sed -i '/ocab-core = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \
-    sed -i '/ocab-modules = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \
-    sed -i '/ocab-core = {/{s/, develop = true//}' /app/src/ocab_modules/pyproject.toml
+RUN sed -i '/karkas-core = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \
+    sed -i '/karkas-blocks = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \
+    sed -i '/karkas-core = {/{s/, develop = true//}' /app/src/karkas_blocks/pyproject.toml
 
 WORKDIR /app/src/altlinux
 
diff --git a/src/altlinux/README.md b/src/altlinux/README.md
index ec07657..8bee95a 100644
--- a/src/altlinux/README.md
+++ b/src/altlinux/README.md
@@ -2,14 +2,14 @@
 
 ## Описание
 
-Подготовленная версия OCAB Lite для интеграции в чат [Альт Линукс](https://t.me/alt_linux)
+Подготовленная версия Karkas Lite для интеграции в чат [Альт Линукс](https://t.me/alt_linux)
 
 ## Функционал
 Список OCAB-модулей используемых в боте:
 
 * report - Вызов администрации чата одной командой
 * welcome - Автоматическая вариативная проверка пользователей на признаки бота или другой автоматической рекламной системы
-* help - Получение информации об OCAB Lite
+* help - Получение информации об Karkas Lite
 
 ## Запуск
 
diff --git a/src/altlinux/altlinux/__main__.py b/src/altlinux/altlinux/__main__.py
index d49b85a..618082b 100644
--- a/src/altlinux/altlinux/__main__.py
+++ b/src/altlinux/altlinux/__main__.py
@@ -1,25 +1,25 @@
 import asyncio
 from importlib.metadata import version
 
-from ocab_core import OCAB
-from ocab_modules import module_loader
+from karkas_core import Karkas
+from karkas_blocks import block_loader
 
 
 async def main():
-    ocab = OCAB()
-    await ocab.init_app(
+    karkas = Karkas()
+    await karkas.init_app(
         [
-            module_loader("standard", "config", safe=False),
-            module_loader("standard", "command_helper"),
+            block_loader("standard", "config", safe=False),
+            block_loader("standard", "command_helper"),
             # safe=False из-за super().__init__()
-            module_loader("standard", "filters", safe=False),
-            module_loader("standard", "report"),
-            module_loader("standard", "welcome", safe=False),
-            module_loader("standard", "help"),
+            block_loader("standard", "filters", safe=False),
+            block_loader("standard", "report"),
+            block_loader("standard", "welcome", safe=False),
+            block_loader("standard", "help"),
         ],
         metainfo={"app_version": version("altlinux")},
     )
-    await ocab.start()
+    await karkas.start()
 
 
 asyncio.run(main())
diff --git a/src/altlinux/poetry.lock b/src/altlinux/poetry.lock
index 5224dc3..69d1016 100644
--- a/src/altlinux/poetry.lock
+++ b/src/altlinux/poetry.lock
@@ -1210,7 +1210,7 @@ files = [
 ]
 
 [[package]]
-name = "ocab-core"
+name = "karkas-core"
 version = "0.1.0"
 description = ""
 optional = false
@@ -1232,10 +1232,10 @@ webhook = ["fastapi (>=0.111.1,<0.112.0)", "hypercorn (>=0.17.3,<0.18.0)"]
 
 [package.source]
 type = "directory"
-url = "../ocab_core"
+url = "../karkas_core"
 
 [[package]]
-name = "ocab-modules"
+name = "karkas-blocks"
 version = "0.1.0"
 description = ""
 optional = false
@@ -1247,13 +1247,13 @@ develop = true
 dash = "^2.17.1"
 dash-bootstrap-components = "^1.6.0"
 dash-extensions = "^1.0.18"
-ocab-core = {path = "../ocab_core", develop = true}
+karkas-core = {path = "../karkas_core", develop = true}
 peewee = "^3.17.6"
 pyyaml = "^6.0.1"
 
 [package.source]
 type = "directory"
-url = "../ocab_modules"
+url = "../karkas_blocks"
 
 [[package]]
 name = "packaging"
diff --git a/src/altlinux/pyproject.toml b/src/altlinux/pyproject.toml
index 38e816d..e63ca9e 100644
--- a/src/altlinux/pyproject.toml
+++ b/src/altlinux/pyproject.toml
@@ -9,8 +9,8 @@ readme = "README.md"
 
 [tool.poetry.dependencies]
 python = "~3.12"
-ocab-core = { extras=["webhook"], path = "../ocab_core", develop = true }
-ocab-modules = { path = "../ocab_modules", develop = true }
+karkas-core = { extras=["webhook"], path = "../karkas_core", develop = true }
+karkas-blocks = { path = "../karkas_blocks", develop = true }
 
 [build-system]
 requires = ["poetry-core"]
diff --git a/src/ocab_core/README.md b/src/ocab_core/README.md
index 4589c5d..0737215 100644
--- a/src/ocab_core/README.md
+++ b/src/ocab_core/README.md
@@ -1,6 +1,6 @@
-# OCAB Core
+# Karkas Core
 
-Это ядро OCAB, содержащее базовые компоненты:
+Это ядро Karkas, содержащее базовые компоненты:
 
 - Система управления модулями.
 - Логирование.
diff --git a/src/ocab_core/ocab_core/__init__.py b/src/ocab_core/ocab_core/__init__.py
index de586f8..3940848 100644
--- a/src/ocab_core/ocab_core/__init__.py
+++ b/src/ocab_core/ocab_core/__init__.py
@@ -1 +1 @@
-from .main import OCAB
+from .main import Karkas
diff --git a/src/ocab_core/ocab_core/logger.py b/src/ocab_core/ocab_core/logger.py
index 3a56ff6..620de07 100644
--- a/src/ocab_core/ocab_core/logger.py
+++ b/src/ocab_core/ocab_core/logger.py
@@ -1,7 +1,7 @@
 import logging
 import traceback
 
-app_logger = logging.getLogger("ocab")
+app_logger = logging.getLogger("karkas")
 log_level = logging.INFO
 
 
diff --git a/src/ocab_core/ocab_core/main.py b/src/ocab_core/ocab_core/main.py
index fb91365..95a8764 100644
--- a/src/ocab_core/ocab_core/main.py
+++ b/src/ocab_core/ocab_core/main.py
@@ -3,17 +3,17 @@ from typing import TYPE_CHECKING
 
 from aiogram import Bot, Dispatcher
 
-from ocab_core.lib import register_bot_webhook
-from ocab_core.logger import CustomLogger, log, setup_logger
-from ocab_core.modules_system import ModulesManager
-from ocab_core.modules_system.public_api import get_module
-from ocab_core.singleton import Singleton
+from karkas_core.lib import register_bot_webhook
+from karkas_core.logger import CustomLogger, log, setup_logger
+from karkas_core.modules_system import ModulesManager
+from karkas_core.modules_system.public_api import get_module
+from karkas_core.singleton import Singleton
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 
-class OCAB:
+class Karkas:
     def __init__(self) -> None:
         pass
 
@@ -26,10 +26,10 @@ class OCAB:
         try:
             singleton.modules_manager = ModulesManager()
 
-            for module_loader in bot_modules:
-                info = module_loader.info()
+            for block_loader in bot_modules:
+                info = block_loader.info()
                 log(f"Loading {info.name} ({info.id}) module")
-                await singleton.modules_manager.load(module_loader)
+                await singleton.modules_manager.load(block_loader)
 
             register_config()
 
diff --git a/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py b/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py
index 3a04dd9..a0030bc 100644
--- a/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py
+++ b/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py
@@ -3,9 +3,9 @@ from pathlib import Path
 
 from RestrictedPython import compile_restricted_exec
 
-# from ocab_core.logger import log
-from ocab_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader
-from ocab_core.modules_system.safe.policy import (
+# from karkas_core.logger import log
+from karkas_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader
+from karkas_core.modules_system.safe.policy import (
     ALLOWED_IMPORTS,
     BUILTINS,
     RestrictedPythonPolicy,
@@ -62,9 +62,9 @@ class FSLoader(UnsafeFSLoader):
         return file_path
 
     def _hook_import(self, name: str, *args, **kwargs):
-        if name == "ocab_core.modules_system.public_api":
+        if name == "karkas_core.modules_system.public_api":
             module = __import__(name, *args, **kwargs)
-            module.__ocab_module_id__ = self.module_id
+            module.__karkas_block_id__ = self.module_id
             return module
 
         for key in self.allowed_python_dependencies.keys():
@@ -78,7 +78,7 @@ class FSLoader(UnsafeFSLoader):
 
         module = types.ModuleType(name)
         module.__dict__.update(
-            {"__builtins__": self.builtins, "__ocab_module_id__": self.module_id}
+            {"__builtins__": self.builtins, "__karkas_block_id__": self.module_id}
         )
         result = compile_restricted_exec(src, "<string>", policy=RestrictedPythonPolicy)
 
diff --git a/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py b/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py
index d2ec974..37f790e 100644
--- a/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py
+++ b/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py
@@ -3,7 +3,7 @@ import os
 import sys
 from pathlib import Path
 
-from ocab_core.modules_system.loaders.base import AbstractLoader, ModuleInfo
+from karkas_core.modules_system.loaders.base import AbstractLoader, ModuleInfo
 
 
 class UnsafeFSLoader(AbstractLoader):
diff --git a/src/ocab_core/ocab_core/modules_system/modules_manager.py b/src/ocab_core/ocab_core/modules_system/modules_manager.py
index 390e826..e0ec9e6 100644
--- a/src/ocab_core/ocab_core/modules_system/modules_manager.py
+++ b/src/ocab_core/ocab_core/modules_system/modules_manager.py
@@ -4,7 +4,7 @@ import inspect
 import pkg_resources
 import semver
 
-from ocab_core.modules_system.loaders.base import (
+from karkas_core.modules_system.loaders.base import (
     AbstractLoader,
     DependencyInfo,
     ModuleInfo,
diff --git a/src/ocab_core/ocab_core/modules_system/public_api/__init__.py b/src/ocab_core/ocab_core/modules_system/public_api/__init__.py
index 866f4d6..8ead156 100644
--- a/src/ocab_core/ocab_core/modules_system/public_api/__init__.py
+++ b/src/ocab_core/ocab_core/modules_system/public_api/__init__.py
@@ -1,4 +1,4 @@
-from ocab_core.logger import log
+from karkas_core.logger import log
 
 from .public_api import (
     Storage,
diff --git a/src/ocab_core/ocab_core/modules_system/public_api/public_api.py b/src/ocab_core/ocab_core/modules_system/public_api/public_api.py
index e9ce931..53e6185 100644
--- a/src/ocab_core/ocab_core/modules_system/public_api/public_api.py
+++ b/src/ocab_core/ocab_core/modules_system/public_api/public_api.py
@@ -6,9 +6,9 @@ from aiogram import BaseMiddleware, Router
 from aiogram.fsm.context import FSMContext
 from aiogram.fsm.storage.base import StorageKey
 
-# from ocab_core.logger import log
-from ocab_core.modules_system.loaders.base import DependencyInfo
-from ocab_core.singleton import Singleton
+# from karkas_core.logger import log
+from karkas_core.modules_system.loaders.base import DependencyInfo
+from karkas_core.singleton import Singleton
 
 
 async def set_chat_menu_button(menu_button):
@@ -64,8 +64,8 @@ def get_module(
 
     allowed_uses = None
 
-    if "__ocab_module_id__" in caller_globals:
-        caller_module_id = caller_globals["__ocab_module_id__"]
+    if "__karkas_block_id__" in caller_globals:
+        caller_module_id = caller_globals["__karkas_block_id__"]
         caller_module_info = app.modules_manager.get_info_by_id(caller_module_id)
 
         if caller_module_info and caller_module_info.dependencies:
diff --git a/src/ocab_core/ocab_core/modules_system/safe/policy.py b/src/ocab_core/ocab_core/modules_system/safe/policy.py
index d74fe6f..8dfc14b 100644
--- a/src/ocab_core/ocab_core/modules_system/safe/policy.py
+++ b/src/ocab_core/ocab_core/modules_system/safe/policy.py
@@ -17,8 +17,8 @@ from RestrictedPython.Guards import (  # guarded_setattr,; full_write_guard,
     safer_getattr,
 )
 
-from ocab_core.logger import log
-from ocab_core.modules_system.safe.zope_guards import extra_safe_builtins
+from karkas_core.logger import log
+from karkas_core.modules_system.safe.zope_guards import extra_safe_builtins
 
 
 class RestrictedPythonPolicy(RestrictingNodeTransformer):
diff --git a/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py b/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py
index e5e6436..c6fcde6 100644
--- a/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py
+++ b/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py
@@ -1,6 +1,6 @@
 #############################################################################
 #
-# Copyright (c) 2024 OCAB Team
+# Copyright (c) 2024 Karkas Team
 # Copyright (c) 2002 Zope Foundation and Contributors.
 #
 # This software includes a function derived from the software subject to the
diff --git a/src/ocab_core/ocab_core/singleton.py b/src/ocab_core/ocab_core/singleton.py
index 228092c..d0db542 100644
--- a/src/ocab_core/ocab_core/singleton.py
+++ b/src/ocab_core/ocab_core/singleton.py
@@ -1,7 +1,7 @@
 from aiogram import Bot, Dispatcher
 from aiogram.fsm.storage.memory import MemoryStorage
 
-from ocab_core.modules_system import ModulesManager
+from karkas_core.modules_system import ModulesManager
 
 
 class SingletonMeta(type):
diff --git a/src/ocab_core/poetry.lock b/src/ocab_core/poetry.lock
index 97e7f4e..41bc5aa 100644
--- a/src/ocab_core/poetry.lock
+++ b/src/ocab_core/poetry.lock
@@ -1210,7 +1210,7 @@ files = [
 ]
 
 [[package]]
-name = "ocab-modules"
+name = "karkas-blocks"
 version = "0.1.0"
 description = ""
 optional = false
@@ -1222,13 +1222,13 @@ develop = true
 dash = "^2.17.1"
 dash-bootstrap-components = "^1.6.0"
 dash-extensions = "^1.0.18"
-ocab-core = {path = "../ocab_core", develop = true}
+karkas-core = {path = "../karkas_core", develop = true}
 peewee = "^3.17.6"
 pyyaml = "^6.0.1"
 
 [package.source]
 type = "directory"
-url = "../ocab_modules"
+url = "../karkas_blocks"
 
 [[package]]
 name = "packaging"
diff --git a/src/ocab_core/pyproject.toml b/src/ocab_core/pyproject.toml
index ea1e87d..26a6621 100644
--- a/src/ocab_core/pyproject.toml
+++ b/src/ocab_core/pyproject.toml
@@ -1,5 +1,5 @@
 [tool.poetry]
-name = "ocab-core"
+name = "karkas-core"
 version = "0.1.0"
 description = ""
 authors = ["Максим Слипенко <maxim@slipenko.com>"]
@@ -16,7 +16,7 @@ fastapi = { version = "^0.111.1", optional = true  }
 hypercorn = { version = "^0.17.3", optional = true }
 
 [tool.poetry.group.dev.dependencies]
-ocab-modules = { path = "../ocab_modules", develop = true }
+karkas-blocks = { path = "../karkas_blocks", develop = true }
 
 [tool.poetry.extras]
 webhook = ["fastapi", "hypercorn"]
diff --git a/src/ocab_modules/README.md b/src/ocab_modules/README.md
index e3e2d50..a9de353 100644
--- a/src/ocab_modules/README.md
+++ b/src/ocab_modules/README.md
@@ -1,12 +1,12 @@
-# OCAB Modules
+# Karkas Blocks
 
-OCAB Modules содержит набор модулей для платформы Open Chat AI Bot (OCAB).
+Karkas Blocks содержит набор модулей для платформы Open Chat AI Bot (Karkas).
 
 ## Описание
 
-OCAB - это платформа для создания чат-ботов Telegram. Модули - это расширения, которые добавляют функциональность ботам OCAB.
+Karkas - это платформа для создания чат-ботов Telegram. Модули - это расширения, которые добавляют функциональность ботам Karkas.
 
 ## Типы модулей
 
 * **Стандартные модули (standard.*):** Предоставляют основные функции, такие как управление пользователями, ролями и настройками.
-* **Дополнительные официальные модули (external.*):** Разработаны командой OCAB и предоставляют расширенные возможности, такие как интеграция с нейросетями, внешними сервисами и API.
+* **Дополнительные официальные модули (external.*):** Разработаны командой Karkas и предоставляют расширенные возможности, такие как интеграция с нейросетями, внешними сервисами и API.
diff --git a/src/ocab_modules/ocab_modules/__init__.py b/src/ocab_modules/ocab_modules/__init__.py
index cf4a902..d143f8a 100644
--- a/src/ocab_modules/ocab_modules/__init__.py
+++ b/src/ocab_modules/ocab_modules/__init__.py
@@ -1 +1 @@
-from .lib import module_loader
+from .lib import block_loader
diff --git a/src/ocab_modules/ocab_modules/lib.py b/src/ocab_modules/ocab_modules/lib.py
index 7f71cc2..af7bcdb 100644
--- a/src/ocab_modules/ocab_modules/lib.py
+++ b/src/ocab_modules/ocab_modules/lib.py
@@ -1,8 +1,8 @@
 import importlib
 import os
 
-from ocab_core.modules_system.loaders.fs_loader import FSLoader
-from ocab_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader
+from karkas_core.modules_system.loaders.fs_loader import FSLoader
+from karkas_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader
 
 
 def get_module_directory(module_name):
@@ -15,11 +15,11 @@ def get_module_directory(module_name):
     return os.path.dirname(module_path)
 
 
-ocab_modules_path = get_module_directory("ocab_modules")
+karkas_blocks_path = get_module_directory("karkas_blocks")
 
 
-def module_loader(namespace: str, module_name: str, safe=True):
+def block_loader(namespace: str, module_name: str, safe=True):
     if not safe:
-        return UnsafeFSLoader(f"{ocab_modules_path}/{namespace}/{module_name}")
+        return UnsafeFSLoader(f"{karkas_blocks_path}/{namespace}/{module_name}")
     else:
-        return FSLoader(f"{ocab_modules_path}/{namespace}/{module_name}")
+        return FSLoader(f"{karkas_blocks_path}/{namespace}/{module_name}")
diff --git a/src/ocab_modules/ocab_modules/standard/admin/handlers.py b/src/ocab_modules/ocab_modules/standard/admin/handlers.py
index 9440eda..368cb2b 100644
--- a/src/ocab_modules/ocab_modules/standard/admin/handlers.py
+++ b/src/ocab_modules/ocab_modules/standard/admin/handlers.py
@@ -4,10 +4,10 @@ from typing import TYPE_CHECKING
 from aiogram import Bot
 from aiogram.types import Message
 
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/admin/info.json b/src/ocab_modules/ocab_modules/standard/admin/info.json
index a3eae7a..fd54142 100644
--- a/src/ocab_modules/ocab_modules/standard/admin/info.json
+++ b/src/ocab_modules/ocab_modules/standard/admin/info.json
@@ -2,7 +2,7 @@
   "id": "standard.admin",
   "name": "Admin",
   "description": "Модуль для работы с админкой",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/admin/main.py b/src/ocab_modules/ocab_modules/standard/admin/main.py
index 0dffedb..1f67729 100644
--- a/src/ocab_modules/ocab_modules/standard/admin/main.py
+++ b/src/ocab_modules/ocab_modules/standard/admin/main.py
@@ -1,4 +1,4 @@
-from ocab_core.modules_system.public_api import register_router
+from karkas_core.modules_system.public_api import register_router
 
 from .routers import router
 
diff --git a/src/ocab_modules/ocab_modules/standard/admin/routers.py b/src/ocab_modules/ocab_modules/standard/admin/routers.py
index b2dc7a5..326de75 100644
--- a/src/ocab_modules/ocab_modules/standard/admin/routers.py
+++ b/src/ocab_modules/ocab_modules/standard/admin/routers.py
@@ -2,7 +2,7 @@
 from aiogram import F, Router
 from aiogram.filters import Command
 
-from ocab_core.modules_system.public_api import get_module, log
+from karkas_core.modules_system.public_api import get_module, log
 
 from .handlers import (
     chat_not_in_approve_list,
diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/README.md b/src/ocab_modules/ocab_modules/standard/command_helper/README.md
index afb3deb..97a614f 100644
--- a/src/ocab_modules/ocab_modules/standard/command_helper/README.md
+++ b/src/ocab_modules/ocab_modules/standard/command_helper/README.md
@@ -16,7 +16,7 @@
 ## Пример
 
 ```python
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 register_command = get_module("standard.command_helper", "register_command")
 
diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/info.json b/src/ocab_modules/ocab_modules/standard/command_helper/info.json
index 00a14dc..8d41e24 100644
--- a/src/ocab_modules/ocab_modules/standard/command_helper/info.json
+++ b/src/ocab_modules/ocab_modules/standard/command_helper/info.json
@@ -2,7 +2,7 @@
   "id": "standard.command_helper",
   "name": "Command helper",
   "description": "Модуль для отображения команд при вводе '/'",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {}
diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/main.py b/src/ocab_modules/ocab_modules/standard/command_helper/main.py
index 9fcb5f9..91d0209 100644
--- a/src/ocab_modules/ocab_modules/standard/command_helper/main.py
+++ b/src/ocab_modules/ocab_modules/standard/command_helper/main.py
@@ -1,6 +1,6 @@
 from aiogram.types import BotCommand
 
-from ocab_core.modules_system.public_api import set_my_commands
+from karkas_core.modules_system.public_api import set_my_commands
 
 commands = dict()
 
diff --git a/src/ocab_modules/ocab_modules/standard/config/README.md b/src/ocab_modules/ocab_modules/standard/config/README.md
index 784757b..9094efe 100644
--- a/src/ocab_modules/ocab_modules/standard/config/README.md
+++ b/src/ocab_modules/ocab_modules/standard/config/README.md
@@ -18,7 +18,7 @@
 ## Пример
 
 ```python
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 config = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/config/config_manager.py b/src/ocab_modules/ocab_modules/standard/config/config_manager.py
index 1c61a39..d8951ab 100644
--- a/src/ocab_modules/ocab_modules/standard/config/config_manager.py
+++ b/src/ocab_modules/ocab_modules/standard/config/config_manager.py
@@ -66,7 +66,7 @@ class ConfigManager:
     def _get_module_id(self):
         caller_frame = inspect.currentframe().f_back.f_back
         caller_globals = caller_frame.f_globals
-        module_id = caller_globals.get("__ocab_module_id__")
+        module_id = caller_globals.get("__karkas_block_id__")
         return module_id
 
     def mass_set(self, updates: Dict[str, Any]):
diff --git a/src/ocab_modules/ocab_modules/standard/config/info.json b/src/ocab_modules/ocab_modules/standard/config/info.json
index 9d6b7ef..e9e7b2c 100644
--- a/src/ocab_modules/ocab_modules/standard/config/info.json
+++ b/src/ocab_modules/ocab_modules/standard/config/info.json
@@ -2,7 +2,7 @@
   "id": "standard.config",
   "name": "Config YAML",
   "description": "Модуль для работы с конфигурационным файлом бота (YAML)",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": true,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/config/main.py b/src/ocab_modules/ocab_modules/standard/config/main.py
index 89096a0..8f1b835 100644
--- a/src/ocab_modules/ocab_modules/standard/config/main.py
+++ b/src/ocab_modules/ocab_modules/standard/config/main.py
@@ -1,4 +1,4 @@
-from ocab_core.modules_system.public_api import get_module, log
+from karkas_core.modules_system.public_api import get_module, log
 
 from .config import config
 from .miniapp_ui import get_miniapp_blueprint
diff --git a/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py b/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py
index cd6fabd..799be60 100644
--- a/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py
+++ b/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py
@@ -12,10 +12,10 @@ try:
 except ImportError:
     DASH_AVAILABLE = False
 
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.roles import Roles as IRoles
+    from karkas_blocks.standard.roles import Roles as IRoles
 
 
 def create_control(key: str, config: ConfigManager):
diff --git a/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py b/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py
index cf17556..d704201 100644
--- a/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py
+++ b/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py
@@ -1,6 +1,6 @@
 import unittest
 
-from src.ocab_modules.standard.config.config import get_config
+from src.karkas_blocks.standard.config.config import get_config
 
 yaml_load = get_config(is_test=True)
 
diff --git a/src/ocab_modules/ocab_modules/standard/database/README.md b/src/ocab_modules/ocab_modules/standard/database/README.md
index 769e793..6553172 100644
--- a/src/ocab_modules/ocab_modules/standard/database/README.md
+++ b/src/ocab_modules/ocab_modules/standard/database/README.md
@@ -1,6 +1,6 @@
 ## Модуль DataBase
 
-Модуль DataBase предназначен для ведения и работы с базами данных OCAB.
+Модуль DataBase предназначен для ведения и работы с базами данных Karkas.
 
 Модуль содержит в себе следующие таблицы:
 
diff --git a/src/ocab_modules/ocab_modules/standard/database/db_api.py b/src/ocab_modules/ocab_modules/standard/database/db_api.py
index 855a673..fca29b3 100644
--- a/src/ocab_modules/ocab_modules/standard/database/db_api.py
+++ b/src/ocab_modules/ocab_modules/standard/database/db_api.py
@@ -16,12 +16,12 @@ def connect_database(is_test: bool = False, module: str | None = None):
         raise NotExpectedModuleName()
     db_path = "database"
 
-    database = pw.SqliteDatabase(f"{db_path}/OCAB.db")
+    database = pw.SqliteDatabase(f"{db_path}/Karkas.db")
     database_proxy.initialize(database)
     database.connect()
     create_tables(database)
 
-    return database, f"{db_path}/OCAB.db"
+    return database, f"{db_path}/Karkas.db"
 
 
 def create_tables(db: pw.SqliteDatabase):
diff --git a/src/ocab_modules/ocab_modules/standard/database/info.json b/src/ocab_modules/ocab_modules/standard/database/info.json
index 1a5060e..3534496 100644
--- a/src/ocab_modules/ocab_modules/standard/database/info.json
+++ b/src/ocab_modules/ocab_modules/standard/database/info.json
@@ -2,7 +2,7 @@
   "id": "standard.database",
   "name": "Database",
   "description": "Модуль для работы с БД",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": true,
   "dependencies": {}
diff --git a/src/ocab_modules/ocab_modules/standard/filters/README.md b/src/ocab_modules/ocab_modules/standard/filters/README.md
index 2166390..1cc0a49 100644
--- a/src/ocab_modules/ocab_modules/standard/filters/README.md
+++ b/src/ocab_modules/ocab_modules/standard/filters/README.md
@@ -16,7 +16,7 @@
 
 ```python
 from aiogram import Router
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 ChatModerOrAdminFilter = get_module("standard.filters", "ChatModerOrAdminFilter")
 
diff --git a/src/ocab_modules/ocab_modules/standard/filters/filters.py b/src/ocab_modules/ocab_modules/standard/filters/filters.py
index 4370baf..dfe98bd 100644
--- a/src/ocab_modules/ocab_modules/standard/filters/filters.py
+++ b/src/ocab_modules/ocab_modules/standard/filters/filters.py
@@ -5,11 +5,11 @@ from aiogram.filters import BaseFilter
 from aiogram.types import Message
 from typing_extensions import deprecated
 
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
-    from ocab_modules.standard.roles import Roles as IRoles
+    from karkas_blocks.standard.config import IConfig
+    from karkas_blocks.standard.roles import Roles as IRoles
 
 
 config: "IConfig" = get_module("standard.config", "config")
diff --git a/src/ocab_modules/ocab_modules/standard/filters/info.json b/src/ocab_modules/ocab_modules/standard/filters/info.json
index 9554bea..aabb3fe 100644
--- a/src/ocab_modules/ocab_modules/standard/filters/info.json
+++ b/src/ocab_modules/ocab_modules/standard/filters/info.json
@@ -2,7 +2,7 @@
   "id": "standard.filters",
   "name": "Filters",
   "description": "Модуль с фильтрами",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": true,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py
index 4b71145..1716158 100644
--- a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py
+++ b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py
@@ -4,11 +4,11 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
 from aiogram.fsm.state import State
 from aiogram.fsm.storage.base import BaseStorage, StorageKey
 
-from ocab_core.modules_system.public_api import get_module, log
-from ocab_core.modules_system.public_api.public_api import set_fsm
+from karkas_core.modules_system.public_api import get_module, log
+from karkas_core.modules_system.public_api.public_api import set_fsm
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.database.repositories import (
+    from karkas_blocks.standard.database.repositories import (
         FSMDataRepository as IFSMDataRepository,
     )
 
diff --git a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json
index 58c05b4..1302a34 100644
--- a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json
+++ b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json
@@ -2,7 +2,7 @@
   "id": "standard.fsm_database_storage",
   "name": "FSM Database Storage",
   "description": "Очень полезный модуль",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/help/info.json b/src/ocab_modules/ocab_modules/standard/help/info.json
index 30cbbe6..75df4ed 100644
--- a/src/ocab_modules/ocab_modules/standard/help/info.json
+++ b/src/ocab_modules/ocab_modules/standard/help/info.json
@@ -1,21 +1,21 @@
 {
-    "id": "standard.help",
-    "name": "Help",
-    "description": "Модуль для вывода /help сообщения",
-    "author": "OCAB Team",
-    "version": "1.0.0",
-    "privileged": false,
-    "dependencies": {
-        "required": {
-            "standard.config": "^1.0.0"
-        },
-        "optional": {
-            "standard.command_helper": "^1.0.0"
-        }
+  "id": "standard.help",
+  "name": "Help",
+  "description": "Модуль для вывода /help сообщения",
+  "author": "Karkas Team",
+  "version": "1.0.0",
+  "privileged": false,
+  "dependencies": {
+    "required": {
+      "standard.config": "^1.0.0"
     },
-    "pythonDependencies": {
-        "required": {
-            "string": "*"
-        }
+    "optional": {
+      "standard.command_helper": "^1.0.0"
     }
+  },
+  "pythonDependencies": {
+    "required": {
+      "string": "*"
+    }
+  }
 }
diff --git a/src/ocab_modules/ocab_modules/standard/help/main.py b/src/ocab_modules/ocab_modules/standard/help/main.py
index 6dedb83..a5e1de0 100644
--- a/src/ocab_modules/ocab_modules/standard/help/main.py
+++ b/src/ocab_modules/ocab_modules/standard/help/main.py
@@ -5,14 +5,14 @@ from aiogram import Router
 from aiogram.filters import Command
 from aiogram.types import Message
 
-from ocab_core.modules_system.public_api import (
+from karkas_core.modules_system.public_api import (
     get_metainfo,
     get_module,
     register_router,
 )
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/info/handlers.py b/src/ocab_modules/ocab_modules/standard/info/handlers.py
index eb369c9..8c18816 100644
--- a/src/ocab_modules/ocab_modules/standard/info/handlers.py
+++ b/src/ocab_modules/ocab_modules/standard/info/handlers.py
@@ -5,11 +5,11 @@ from typing import TYPE_CHECKING
 from aiogram import Bot
 from aiogram.types import Message
 
-from ocab_core.modules_system.public_api import get_module, log
+from karkas_core.modules_system.public_api import get_module, log
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.database import db_api as IDbApi
-    from ocab_modules.standard.roles import Roles as IRoles
+    from karkas_blocks.standard.database import db_api as IDbApi
+    from karkas_blocks.standard.roles import Roles as IRoles
 
 db_api: "IDbApi" = get_module(
     "standard.database",
diff --git a/src/ocab_modules/ocab_modules/standard/info/info.json b/src/ocab_modules/ocab_modules/standard/info/info.json
index 3a37f73..454f1c7 100644
--- a/src/ocab_modules/ocab_modules/standard/info/info.json
+++ b/src/ocab_modules/ocab_modules/standard/info/info.json
@@ -2,7 +2,7 @@
   "id": "standard.info",
   "name": "Info",
   "description": "Модуль с информацией",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/info/main.py b/src/ocab_modules/ocab_modules/standard/info/main.py
index 8893a44..4756851 100644
--- a/src/ocab_modules/ocab_modules/standard/info/main.py
+++ b/src/ocab_modules/ocab_modules/standard/info/main.py
@@ -1,7 +1,7 @@
 from aiogram import Router
 from aiogram.filters import Command
 
-from ocab_core.modules_system.public_api import get_module, register_router
+from karkas_core.modules_system.public_api import get_module, register_router
 
 from .handlers import get_chat_info, get_user_info
 
diff --git a/src/ocab_modules/ocab_modules/standard/message_processing/info.json b/src/ocab_modules/ocab_modules/standard/message_processing/info.json
index 8fbeb1a..6c72bed 100644
--- a/src/ocab_modules/ocab_modules/standard/message_processing/info.json
+++ b/src/ocab_modules/ocab_modules/standard/message_processing/info.json
@@ -2,7 +2,7 @@
   "id": "standard.message_processing",
   "name": "Info",
   "description": "Модуль с информацией",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": false,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py b/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py
index 834bbc5..496f454 100644
--- a/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py
+++ b/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py
@@ -4,10 +4,10 @@ from typing import TYPE_CHECKING
 
 from aiogram import Bot, F, Router, types
 
-from ocab_core.modules_system.public_api import get_module, log, register_router
+from karkas_core.modules_system.public_api import get_module, log, register_router
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/README.md b/src/ocab_modules/ocab_modules/standard/miniapp/README.md
index 5d47f17..0fd1008 100644
--- a/src/ocab_modules/ocab_modules/standard/miniapp/README.md
+++ b/src/ocab_modules/ocab_modules/standard/miniapp/README.md
@@ -15,7 +15,7 @@
 ## Пример
 
 ```python
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 register_page = get_module("standard.miniapp", "register_page")
 
diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py b/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py
index 5137770..2d5a928 100644
--- a/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py
+++ b/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py
@@ -12,7 +12,7 @@ WEBAPP_LOADER_TEMPLATE = """
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>OCAB</title>
+    <title>Karkas</title>
     <script src="https://telegram.org/js/telegram-web-app.js"></script>
     <script>
         window.addEventListener('message', function(event) {
diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/info.json b/src/ocab_modules/ocab_modules/standard/miniapp/info.json
index 274a4f7..c961535 100644
--- a/src/ocab_modules/ocab_modules/standard/miniapp/info.json
+++ b/src/ocab_modules/ocab_modules/standard/miniapp/info.json
@@ -1,23 +1,23 @@
 {
-    "id": "standard.miniapp",
-    "name": "Miniapp",
-    "description": "Очень полезный модуль",
-    "author": "OCAB Team",
-    "version": "1.0.0",
-    "privileged": false,
-    "dependencies": {
-        "required": {
-            "standard.config": {
-                "version": "^1.0.0",
-                "uses": []
-            }
-        }
-    },
-    "pythonDependencies": {
-        "required": {
-            "dash": "^2.17.1",
-            "dash_extensions": "^1.0.18",
-            "dash_bootstrap_components": "^1.6.0"
-        }
+  "id": "standard.miniapp",
+  "name": "Miniapp",
+  "description": "Очень полезный модуль",
+  "author": "Karkas Team",
+  "version": "1.0.0",
+  "privileged": false,
+  "dependencies": {
+    "required": {
+      "standard.config": {
+        "version": "^1.0.0",
+        "uses": []
+      }
     }
+  },
+  "pythonDependencies": {
+    "required": {
+      "dash": "^2.17.1",
+      "dash_extensions": "^1.0.18",
+      "dash_bootstrap_components": "^1.6.0"
+    }
+  }
 }
diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/lib.py b/src/ocab_modules/ocab_modules/standard/miniapp/lib.py
index 9768ae9..b14d14d 100644
--- a/src/ocab_modules/ocab_modules/standard/miniapp/lib.py
+++ b/src/ocab_modules/ocab_modules/standard/miniapp/lib.py
@@ -8,13 +8,13 @@ import flask
 from dash_extensions.enrich import DashBlueprint, DashProxy, Input, Output, dcc, html
 from dash_extensions.pages import setup_page_components
 
-from ocab_core.modules_system.public_api import get_module, log
+from karkas_core.modules_system.public_api import get_module, log
 
 from .dash_telegram_auth import get_auth_server, setup_auth_clientcallbacks
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
-    from ocab_modules.standard.roles import Roles as IRoles
+    from karkas_blocks.standard.config import IConfig
+    from karkas_blocks.standard.roles import Roles as IRoles
 
 pages = OrderedDict()
 
@@ -87,7 +87,7 @@ def create_dash_app(requests_pathname_prefix: str = None) -> dash.Dash:
                     color="light",
                     className="me-2",
                 ),
-                dbc.NavbarBrand("OCAB"),
+                dbc.NavbarBrand("Karkas"),
             ]
         ),
         color="primary",
diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/main.py b/src/ocab_modules/ocab_modules/standard/miniapp/main.py
index 2470946..404e3fb 100644
--- a/src/ocab_modules/ocab_modules/standard/miniapp/main.py
+++ b/src/ocab_modules/ocab_modules/standard/miniapp/main.py
@@ -3,14 +3,14 @@ from typing import TYPE_CHECKING
 from aiogram import types
 from fastapi.middleware.wsgi import WSGIMiddleware
 
-from ocab_core.modules_system.public_api import (
+from karkas_core.modules_system.public_api import (
     Storage,
     get_module,
     set_chat_menu_button,
 )
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/report/info.json b/src/ocab_modules/ocab_modules/standard/report/info.json
index 27f7d0e..b5996f6 100644
--- a/src/ocab_modules/ocab_modules/standard/report/info.json
+++ b/src/ocab_modules/ocab_modules/standard/report/info.json
@@ -1,23 +1,23 @@
 {
-    "id": "standard.report",
-    "name": "Report",
-    "description": "Модуль для быстрой жалобы на спам",
-    "author": "OCAB Team",
-    "version": "1.0.0",
-    "privileged": false,
-    "dependencies": {
-        "required": {
-            "standard.config": "^1.0.0"
-        },
-        "optional": {
-            "standard.command_helper": "^1.0.0",
-            "standard.filters": "^1.0.0"
-        }
+  "id": "standard.report",
+  "name": "Report",
+  "description": "Модуль для быстрой жалобы на спам",
+  "author": "Karkas Team",
+  "version": "1.0.0",
+  "privileged": false,
+  "dependencies": {
+    "required": {
+      "standard.config": "^1.0.0"
     },
-    "pythonDependencies": {
-        "required": {
-            "random": "*",
-            "string": "*"
-        }
+    "optional": {
+      "standard.command_helper": "^1.0.0",
+      "standard.filters": "^1.0.0"
     }
+  },
+  "pythonDependencies": {
+    "required": {
+      "random": "*",
+      "string": "*"
+    }
+  }
 }
diff --git a/src/ocab_modules/ocab_modules/standard/report/main.py b/src/ocab_modules/ocab_modules/standard/report/main.py
index 43837fa..6da63ab 100644
--- a/src/ocab_modules/ocab_modules/standard/report/main.py
+++ b/src/ocab_modules/ocab_modules/standard/report/main.py
@@ -6,11 +6,11 @@ from aiogram import Router
 from aiogram.filters import Command
 from aiogram.types import ChatMemberAdministrator, ChatMemberOwner, Message
 
-from ocab_core.modules_system.public_api import get_module, log, register_router
+from karkas_core.modules_system.public_api import get_module, log, register_router
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
-    from ocab_modules.standard.filters import ChatIDFilter as IChatIDFilter
+    from karkas_blocks.standard.config import IConfig
+    from karkas_blocks.standard.filters import ChatIDFilter as IChatIDFilter
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/roles/README.md b/src/ocab_modules/ocab_modules/standard/roles/README.md
index 076bce4..3311af7 100644
--- a/src/ocab_modules/ocab_modules/standard/roles/README.md
+++ b/src/ocab_modules/ocab_modules/standard/roles/README.md
@@ -24,7 +24,7 @@
 ## Пример
 
 ```python
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 Roles = get_module("standard.roles", "Roles")
 
diff --git a/src/ocab_modules/ocab_modules/standard/roles/info.json b/src/ocab_modules/ocab_modules/standard/roles/info.json
index 474430e..3f6b80d 100644
--- a/src/ocab_modules/ocab_modules/standard/roles/info.json
+++ b/src/ocab_modules/ocab_modules/standard/roles/info.json
@@ -2,7 +2,7 @@
   "id": "standard.roles",
   "name": "Roles",
   "description": "Модуль для работы с ролями",
-  "author": "OCAB Team",
+  "author": "Karkas Team",
   "version": "1.0.0",
   "privileged": true,
   "dependencies": {
diff --git a/src/ocab_modules/ocab_modules/standard/roles/main.py b/src/ocab_modules/ocab_modules/standard/roles/main.py
index a162e49..4c51ea6 100644
--- a/src/ocab_modules/ocab_modules/standard/roles/main.py
+++ b/src/ocab_modules/ocab_modules/standard/roles/main.py
@@ -1,9 +1,9 @@
 from typing import TYPE_CHECKING
 
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
+    from karkas_blocks.standard.config import IConfig
 
 
 def module_init():
diff --git a/src/ocab_modules/ocab_modules/standard/roles/roles.py b/src/ocab_modules/ocab_modules/standard/roles/roles.py
index 54f2201..39b6bac 100644
--- a/src/ocab_modules/ocab_modules/standard/roles/roles.py
+++ b/src/ocab_modules/ocab_modules/standard/roles/roles.py
@@ -1,10 +1,10 @@
 from typing import TYPE_CHECKING
 
-from ocab_core.modules_system.public_api import get_module
+from karkas_core.modules_system.public_api import get_module
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
-    from ocab_modules.standard.database.db_api import get_user_role as IGetUserRoleType
+    from karkas_blocks.standard.config import IConfig
+    from karkas_blocks.standard.database.db_api import get_user_role as IGetUserRoleType
 
 get_user_role: "IGetUserRoleType" = get_module(
     "standard.database", "db_api.get_user_role"
diff --git a/src/ocab_modules/ocab_modules/standard/welcome/info.json b/src/ocab_modules/ocab_modules/standard/welcome/info.json
index bf99dba..9bfa7e0 100644
--- a/src/ocab_modules/ocab_modules/standard/welcome/info.json
+++ b/src/ocab_modules/ocab_modules/standard/welcome/info.json
@@ -1,22 +1,22 @@
 {
-    "id": "standard.welcome",
-    "name": "Welcome",
-    "description": "Модуль для проверки на бота",
-    "author": "OCAB Team",
-    "version": "1.0.0",
-    "privileged": true,
-    "dependencies": {
-        "required": {
-            "standard.config": "^1.0.0"
-        },
-        "optional": {
-            "standard.command_helper": "^1.0.0",
-            "standard.filters": "^1.0.0"
-        }
+  "id": "standard.welcome",
+  "name": "Welcome",
+  "description": "Модуль для проверки на бота",
+  "author": "Karkas Team",
+  "version": "1.0.0",
+  "privileged": true,
+  "dependencies": {
+    "required": {
+      "standard.config": "^1.0.0"
     },
-    "pythonDependencies": {
-        "required": {
-            "asyncio": "*"
-        }
+    "optional": {
+      "standard.command_helper": "^1.0.0",
+      "standard.filters": "^1.0.0"
     }
+  },
+  "pythonDependencies": {
+    "required": {
+      "asyncio": "*"
+    }
+  }
 }
diff --git a/src/ocab_modules/ocab_modules/standard/welcome/main.py b/src/ocab_modules/ocab_modules/standard/welcome/main.py
index 0d7de71..bac7446 100644
--- a/src/ocab_modules/ocab_modules/standard/welcome/main.py
+++ b/src/ocab_modules/ocab_modules/standard/welcome/main.py
@@ -9,7 +9,7 @@ from aiogram.exceptions import TelegramBadRequest
 from aiogram.filters import JOIN_TRANSITION, LEAVE_TRANSITION, ChatMemberUpdatedFilter
 from aiogram.types import ChatMemberUpdated, PollAnswer
 
-from ocab_core.modules_system.public_api import get_module, log, register_router
+from karkas_core.modules_system.public_api import get_module, log, register_router
 
 from .utils import MultiKeyDict, get_plural_form, key_from_poll, key_from_user_chat
 from .verifications_methods.base import BaseTask, VerificationCallback
@@ -22,8 +22,8 @@ from .verifications_methods.simple import (
 from .verifications_methods.utils import user_mention
 
 if TYPE_CHECKING:
-    from ocab_modules.standard.config import IConfig
-    from ocab_modules.standard.filters import ChatIDFilter as IChatIDFilter
+    from karkas_blocks.standard.config import IConfig
+    from karkas_blocks.standard.filters import ChatIDFilter as IChatIDFilter
 
 config: "IConfig" = get_module("standard.config", "config")
 
diff --git a/src/ocab_modules/ocab_modules/standard/welcome/verifications_methods/base.py b/src/ocab_modules/ocab_modules/standard/welcome/verifications_methods/base.py
index 8172900..afc3853 100644
--- a/src/ocab_modules/ocab_modules/standard/welcome/verifications_methods/base.py
+++ b/src/ocab_modules/ocab_modules/standard/welcome/verifications_methods/base.py
@@ -6,7 +6,7 @@ from aiogram.exceptions import TelegramBadRequest
 from aiogram.filters.callback_data import CallbackData
 from aiogram.types import ChatMemberUpdated
 
-from ocab_core.modules_system.public_api import log
+from karkas_core.modules_system.public_api import log
 
 from .utils import mute_user, unmute_user
 
diff --git a/src/ocab_modules/poetry.lock b/src/ocab_modules/poetry.lock
index ee79fa6..d370af5 100644
--- a/src/ocab_modules/poetry.lock
+++ b/src/ocab_modules/poetry.lock
@@ -914,7 +914,7 @@ files = [
 ]
 
 [[package]]
-name = "ocab-core"
+name = "karkas-core"
 version = "0.1.0"
 description = ""
 optional = false
@@ -934,7 +934,7 @@ webhook = ["fastapi (>=0.111.1,<0.112.0)", "hypercorn (>=0.17.3,<0.18.0)"]
 
 [package.source]
 type = "directory"
-url = "../ocab_core"
+url = "../karkas_core"
 
 [[package]]
 name = "packaging"
diff --git a/src/ocab_modules/pyproject.toml b/src/ocab_modules/pyproject.toml
index 827267f..375774b 100644
--- a/src/ocab_modules/pyproject.toml
+++ b/src/ocab_modules/pyproject.toml
@@ -1,5 +1,5 @@
 [tool.poetry]
-name = "ocab-modules"
+name = "karkas-blocks"
 version = "0.1.0"
 description = ""
 authors = ["Maxim Slipenko <maxim@slipenko.com>"]
@@ -7,7 +7,7 @@ readme = "README.md"
 
 [tool.poetry.dependencies]
 python = "~3.12"
-ocab-core = { path = "../ocab_core", develop = true }
+karkas-core = { path = "../karkas_core", develop = true }
 
 peewee = "^3.17.6"