commit 93d402944ca2307518fcccc8ab9512e42c59f122 Author: ISman <33d9228@gmail.com> Date: Mon Jun 1 15:09:34 2026 +0000 First commit diff --git a/.README.md.swp b/.README.md.swp new file mode 100644 index 0000000..6f9a369 Binary files /dev/null and b/.README.md.swp differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5dac22e --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Виртуальное окружение +venv/ +# Кэш Python +__pycache__/ +*.pyc +# Переменные окружения (токены, пароли) +.env +# Логи +logs/ +# Данные (ChromaDB, MongoDB, workspace) +data/ +# MD библиотека (будет синхронизироваться, но не храниться в Git) +knowledge_base/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..970cb6e --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +# Neuro Core v4 + +Модульная AI-система с агентами, долговременной памятью и песочницей. + +## Структура проекта +neuro/ +├── config/ +│ ├── settings.yaml # все настройки: порты, хосты, токены +│ ├── loader.py # загрузка конфига с подстановкой из .env +│ └── prompts/ # все .txt промпты (planner.txt, critic.txt, generator.txt, system.txt) +│ +├── src/ +│ ├── main.py # FastAPI приложение (собирает все роуты) +│ │ +│ ├── api/ # HTTP-слой +│ │ ├── router.py # подключает все роуты +│ │ └── routes/ +│ │ ├── chat.py # POST /chat +│ │ ├── system.py # /health, /status +│ │ ├── agent_control.py # разрешение/запрет команд агента (будущее) +│ │ └── memory.py # управление памятью +│ │ +│ ├── core/ # оркестрация и агент +│ │ ├── orchestrator.py # главный цикл: приём промпта → RAG → планирование → выполнение → ответ +│ │ ├── agent/ +│ │ │ ├── loop.py # run_agent (основной цикл) +│ │ │ ├── planner.py # планировщик (LLM + парсинг JSON) +│ │ │ └── critic.py # критик +│ │ └── providers/ # абстрактный LLM-интерфейс + реализации +│ │ ├── base.py # AbstractLLMProvider +│ │ ├── ollama.py +│ │ ├── openrouter.py +│ │ └── ... (deepseek_coder.py, если отдельный API) +│ │ +│ ├── memory/ # управление тремя хранилищами +│ │ ├── base.py # AbstractMemoryStore +│ │ ├── chroma_store.py # векторная ChromaDB (контекст, RAG) +│ │ ├── mongo_store.py # MongoDB (проектная память, оптимизированные промпты) +│ │ └── markdown_store.py # MD-библиотека (дневник, инструкции, документация) +│ │ +│ ├── sandbox/ # песочница +│ │ ├── base.py # AbstractSandbox +│ │ ├── local_sandbox.py # выполнение команд в изолированной папке +│ │ └── docker_sandbox.py # (будущее) запуск в контейнерах +│ │ +│ ├── tools/ # инструменты агента (обёрнуты в AbstractTool) +│ │ ├── base.py # AbstractTool + ToolRegistry +│ │ ├── shell.py # системные команды +│ │ ├── docker.py +│ │ ├── sandbox_tool.py # доступ к песочнице +│ │ └── memory_tool.py # прямой доступ к памяти +│ │ +│ └── utils/ +│ ├── logging.py +│ └── schema_utils.py +│ +└── tests/ # тесты (позже) + + +## Возможности +- Локальные модели через Ollama и облачные через OpenRouter. +- Три уровня памяти: ChromaDB (векторный поиск), MongoDB (проектная память), Markdown-библиотека (документация). +- Песочница для создания и запуска проектов. +- Промпты из внешних `.txt` файлов для лёгкой настройки. +- JSON API и CLI интерфейс. + +## Установка +```bash +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2d96f95 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,89 @@ +aiohappyeyeballs==2.6.2 +aiohttp==3.13.5 +aiosignal==1.4.0 +annotated-doc==0.0.4 +annotated-types==0.7.0 +anyio==4.13.0 +attrs==26.1.0 +bcrypt==5.0.0 +build==1.5.0 +certifi==2026.5.20 +charset-normalizer==3.4.7 +chromadb==1.5.9 +click==8.4.1 +distro==1.9.0 +dnspython==2.8.0 +durationpy==0.10 +fastapi==0.136.3 +filelock==3.29.0 +flatbuffers==25.12.19 +frozenlist==1.8.0 +fsspec==2026.4.0 +googleapis-common-protos==1.75.0 +grpcio==1.81.0 +h11==0.16.0 +hf-xet==1.5.0 +httpcore==1.0.9 +httptools==0.8.0 +httpx==0.28.1 +huggingface_hub==1.17.0 +idna==3.17 +importlib_resources==7.1.0 +jiter==0.15.0 +jsonschema==4.26.0 +jsonschema-specifications==2025.9.1 +kubernetes==36.0.1 +markdown-it-py==4.2.0 +mdurl==0.1.2 +mmh3==5.2.1 +multidict==6.7.1 +numpy==2.4.6 +oauthlib==3.3.1 +ollama==0.6.2 +onnxruntime==1.26.0 +openai==2.38.0 +opentelemetry-api==1.42.1 +opentelemetry-exporter-otlp-proto-common==1.42.1 +opentelemetry-exporter-otlp-proto-grpc==1.42.1 +opentelemetry-proto==1.42.1 +opentelemetry-sdk==1.42.1 +opentelemetry-semantic-conventions==0.63b1 +orjson==3.11.9 +overrides==7.7.0 +packaging==26.2 +propcache==0.5.2 +protobuf==6.33.6 +pybase64==1.4.3 +pydantic==2.13.4 +pydantic-settings==2.14.1 +pydantic_core==2.46.4 +Pygments==2.20.0 +pymongo==4.17.0 +PyPika==0.51.1 +pyproject_hooks==1.2.0 +python-dateutil==2.9.0.post0 +python-dotenv==1.2.2 +PyYAML==6.0.3 +referencing==0.37.0 +requests==2.34.2 +requests-oauthlib==2.0.0 +rich==15.0.0 +rpds-py==2026.5.1 +shellingham==1.5.4 +six==1.17.0 +sniffio==1.3.1 +starlette==1.2.1 +tenacity==9.1.4 +tokenizers==0.23.1 +tqdm==4.67.3 +typer==0.25.1 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +urllib3==2.7.0 +uvicorn==0.48.0 +uvloop==0.22.1 +watchdog==6.0.0 +watchfiles==1.2.0 +websocket-client==1.9.0 +websockets==16.0 +yarl==1.24.2 diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/api/__init__.py b/src/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/api/router.py b/src/api/router.py new file mode 100644 index 0000000..e69de29 diff --git a/src/api/routes/__init__.py b/src/api/routes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/core/__init__.py b/src/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/core/agent/__init__.py b/src/core/agent/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/core/providers/__init__.py b/src/core/providers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/memory/__init__.py b/src/memory/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sandbox/__init__.py b/src/sandbox/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/tools/__init__.py b/src/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/utils/__init__.py b/src/utils/__init__.py new file mode 100644 index 0000000..e69de29