diff --git a/IntelliTrader.Web/IntelliTrader.Web.csproj b/IntelliTrader.Web/IntelliTrader.Web.csproj
index 86e0a06..418402b 100644
--- a/IntelliTrader.Web/IntelliTrader.Web.csproj
+++ b/IntelliTrader.Web/IntelliTrader.Web.csproj
@@ -4,7 +4,7 @@
netcoreapp2.1
false
- Exe
+ Library
2.8
@@ -240,11 +240,11 @@
-
-
+
+
-
-
+
+
diff --git a/IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml b/IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml
index 5b99866..60bcbcb 100644
--- a/IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml
+++ b/IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml
@@ -13,7 +13,7 @@ by editing this MSBuild file. In order to learn more about this please visit htt
True
False
802ff51c-e66d-44bc-b26f-c72c68ed9e56
- ..\Publish\bin
+ ..\Publish\IntelliTrader
False
\ No newline at end of file
diff --git a/IntelliTrader.Web/Services/WebService.cs b/IntelliTrader.Web/Services/WebService.cs
index edfd0fd..1f6cccb 100644
--- a/IntelliTrader.Web/Services/WebService.cs
+++ b/IntelliTrader.Web/Services/WebService.cs
@@ -33,7 +33,7 @@ public void Start()
#if RELEASE
if (!System.Diagnostics.Debugger.IsAttached)
{
- contentRoot = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin");
+ contentRoot = AppDomain.CurrentDomain.BaseDirectory;
}
#endif
diff --git a/IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml b/IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml
index 45ee8cd..f68cd5c 100644
--- a/IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml
+++ b/IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml
@@ -8,6 +8,6 @@ by editing this MSBuild file. In order to learn more about this please visit htt
FileSystem
Release
netcoreapp2.1
- ..\Publish\bin
+ ..\Publish\IntelliTrader
\ No newline at end of file
diff --git a/Publish.bat b/Publish.bat
index f4313bb..c76a5cf 100644
--- a/Publish.bat
+++ b/Publish.bat
@@ -1,5 +1,5 @@
-RMDIR /s /q "Publish/bin"
-dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/bin"
-dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/bin"
+RMDIR /s /q "Publish/IntelliTrader"
+dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/IntelliTrader"
+dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/IntelliTrader"
ECHO "All done!"
PAUSE
\ No newline at end of file
diff --git a/Publish.sh b/Publish.sh
index f4fed1e..60c023f 100644
--- a/Publish.sh
+++ b/Publish.sh
@@ -1,4 +1,4 @@
#!/bin/bash
-dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/bin"
-dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/bin"
\ No newline at end of file
+dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/IntelliTrader"
+dotnet publish -f netcoreapp2.1 -c Release /p:PublishProfile="IntelliTrader.Web/Properties/PublishProfiles/FolderProfile.pubxml" -o "../Publish/IntelliTrader"
\ No newline at end of file
diff --git a/magda_agent_system/BACKLOG.md b/magda_agent_system/BACKLOG.md
index e69de29..32fe0fb 100644
--- a/magda_agent_system/BACKLOG.md
+++ b/magda_agent_system/BACKLOG.md
@@ -0,0 +1,194 @@
+# Magda Agent Backlog
+
+## Инструкции для AI-агента
+
+> Бери ПЕРВУЮ задачу со статусом `[ ]` из раздела "Архитектура мозга".
+> Каждая задача — это полноценный модуль. Реализуй его целиком: код + тесты + интеграция с существующими модулями.
+> После реализации отметь задачу как `[x]` и добавь дату.
+> Если обнаружишь баги или зоны роста — добавь их в раздел "Обнаружено".
+
+---
+
+## 🧠 Архитектура мозга
+
+* [x] MODULE: **Mirror Neuron System (Система зеркальных нейронов)** — модуль `magda_agent/emotions/mirror_neurons.py`. (2026-06-04)
+ Отвечает за базовую эмпатию: анализирует текст пользователя на наличие позитивных/негативных слов и возвращает сдвиг для PAD (Pleasure, Arousal, Dominance).
+ Метод `empathize(text)` — возвращает кортеж (p_shift, a_shift, d_shift) в зависимости от тональности.
+ Интеграция: Вызывается в Consciousness при получении сообщения.
+ Тесты: проверить логику определения тональности и правильность сдвигов.
+* [x] MODULE: **Insula (Инсула)** — модуль `magda_agent/emotions/insula.py`. (2026-06-04)
+ Интеграция с внутренними состояниями агента для генерации эмоциональных откликов.
+ Метод `process_interoception(energy, boredom)` рассчитывает влияние внутреннего состояния на эмоции.
+ Интеграция: Вызывается в Consciousness после обновления Hypothalamus, передавая результаты в EmotionalEngine.
+ Тесты: mock LLM, проверить логику сдвигов valence, arousal, dominance в зависимости от energy и boredom.
+
+* [x] MODULE: **Prefrontal Cortex (Планировщик)** — модуль `magda_agent/planning/planner.py`. (2026-06-03)
+ Разбивает сложные запросы пользователя на последовательность шагов (план).
+ Выбирает какие Skills использовать для каждого шага.
+ Поддерживает состояние плана между сообщениями (мультишаговые задачи).
+ Интеграция: Consciousness вызывает Planner перед генерацией ответа.
+ Тесты: mock LLM, проверить что план генерируется и шаги выполняются последовательно.
+
+* [x] MODULE: **Working Memory** — модуль `magda_agent/memory/working.py`.
+ Краткосрочная, ограниченная (bounded) контекстная память в RAM без ChromaDB.
+* [x] MODULE: **Episodic Memory (Hippocampus)** — модуль `magda_agent/memory/episodic.py`. (2026-06-03)
+ Векторное хранилище (ChromaDB) для всех диалогов и событий.
+ Метод `store_event(text, metadata)` — сохранить событие с эмбеддингом.
+ Метод `recall_events(query, top_k=5)` — найти релевантные события по семантике.
+* [x] MODULE: **Semantic Memory** — модуль `magda_agent/memory/semantic.py`.
+ Векторное хранилище (ChromaDB) для фактов о пользователе и мире.
+ Метод `store_fact(text, metadata)` — сохранить факт.
+ Метод `recall_facts(query, top_k=5)` — семантический поиск фактов.
+
+* [x] MODULE: **Self-Evaluation (Самооценка)** — модуль `magda_agent/metacognition/evaluator.py`. (2026-06-03)
+ После каждого ответа агент оценивает качество своего ответа по шкале 1-10.
+ Criteria: полезность, точность, полнота, эмоциональная адекватность.
+ Результаты сохраняются в Memory. Низкие оценки влияют на system prompt следующего запроса.
+ Интеграция: вызывается в Consciousness после отправки ответа пользователю.
+ Тесты: mock LLM, проверить что оценка парсится и сохраняется.
+
+* [x] MODULE: **Cerebellum (Обучение на привычках)** — модуль `magda_agent/learning/habits.py`. (2026-06-03)
+ Анализирует паттерны: какие Skills часто используются, какие ответы получают высокие оценки.
+ Формирует "привычки" — предпочтительные стратегии для типичных запросов.
+ Метод `suggest_strategy(input_text)` — предложить стратегию на основе прошлого опыта.
+ Интеграция: Planner использует suggest_strategy() для выбора подхода.
+ Тесты: проверить что после N успешных использований Skill, он предлагается первым.
+
+* [x] MODULE: **Amygdala (Глубокие эмоции и привязанность)** — модуль `magda_agent/emotions/attachment.py`. (2026-06-03)
+ Модель привязанности к пользователю: чем больше общения, тем "ближе" агент.
+ Уровни: stranger → acquaintance → friend → close_friend.
+ Уровень влияет на стиль общения (формальность, юмор, эмпатия).
+ Интеграция: EmotionalEngine учитывает attachment level при генерации тона.
+ Тесты: проверить прогрессию уровней, проверить влияние на system prompt.
+
+* [x] MODULE: **Thalamus (Сенсорный фильтр)** — модуль `magda_agent/thalamus/router.py`. (2026-06-04)
+ Служит шлюзом для всех входящих сообщений до их обработки сознанием.
+ Метод `filter_input(text)` — отбрасывает слишком короткие/пустые или шумовые сообщения.
+ Интеграция: API вызывает Thalamus перед отправкой сообщения в Consciousness.
+ Тесты: проверить, что шумовые сообщения отклоняются, а нормальные проходят.
+
+* [x] MODULE: **Basal Ganglia (Action Selection)** — модуль `magda_agent/action/selector.py`. (2026-06-04)
+ Отвечает за выбор конкретного действия из набора возможных на основе приоритетов.
+ Метод `select_action(actions)` — выбирает действие с наибольшим приоритетом.
+ Интеграция: Consciousness вызывает Basal Ganglia для финального выбора действия.
+ Тесты: mock LLM, проверить выбор действия.
+
+* [x] MODULE: **Pineal Gland (Циркадные ритмы и время)** — модуль `magda_agent/rhythms/pineal_gland.py`. (2026-06-04)
+ Управляет внутренними "часами" агента, добавляя в контекст время суток (утро, день, вечер, ночь) и влияя на энергию.
+ Метод `get_time_context()` возвращает текущее время суток.
+ Метод `get_energy_modifier()` возвращает модификатор энергии на основе времени.
+ Интеграция: Consciousness вызывает PinealGland перед LLM Reasoning для добавления временного контекста и перед Hypothalamus для модуляции энергии.
+ Тесты: проверить логику определения времени суток по mock datetime и правильность модификаторов энергии.
+
+* [x] MODULE: **Hypothalamus (Homeostatic Drives)** — модуль `magda_agent/drives/hypothalamus.py`. (2026-06-04)
+ Отвечает за управление базовыми потребностями (энергия, скука).
+ Влияет на внутреннее состояние агента и может служить триггером для действий.
+ Интеграция: Consciousness вызывает обновление drives при обработке ввода.
+ Тесты: проверить логику обновления (уменьшение энергии, изменение скуки) и границы.
+
+* [x] MODULE: **Brainstem (Ствол мозга - Автономные рефлексы)** — модуль `magda_agent/reflexes/brainstem.py`. (2026-06-04)
+ Обрабатывает экстренные команды (stop, help, emergency) для быстрого ответа в обход LLM.
+ Метод `process_reflex(text)` — возвращает быстрый ответ или None.
+ Интеграция: Вызывается в Consciousness сразу после Thalamus.
+ Тесты: проверить, что при экстренных командах возвращается быстрый ответ, а обычные запросы идут дальше.
+
+---
+
+## ✅ Выполнено
+- [x] a2a-async-auth-tracing: A2A Enterprise-Ready Async Auth and Tracing
+- [x] a2a-json-rpc-server: A2A JSON-RPC Server Interface
+- [x] acs-runtime-safety-controls-v2: ACS runtime safety controls
+* [x] FEATURE: Agent-to-Agent (A2A) Protocol integration
+* [x] FEATURE: Online RL from User Feedback v2 (online-rl-user-feedback-v2)
+* [x] FEATURE: Longitudinal Quality Metrics (longitudinal-quality-metrics-v2)
+* [x] FEATURE: Skill creation from experience
+- [x] agent-guard-runtime-safety-v4: Agent Guard Runtime Safety Controls
+- [x] mcp-action-tool-exporter-v4: MCP Action Tool Exporter
+* [x] FEATURE: Guardrails Policy Layer (guardrails-policy-layer)
+
+* [x] FEATURE: Online RL Feedback Integration (online-rl-feedback-integration)
+* [x] MODULE: **Agent Teams Git Worktree Isolation** — модуль `magda_agent/agents/team_isolation.py`. (2026-06-07)
+* [x] FEATURE: A2A Peer-to-Peer Task Delegation
+* [x] MODULE: **Context Engine Plugin Architecture** — модуль `magda_agent/memory/context_engine.py`. (2026-06-07)
+* [ ] FEATURE: Cross-platform reach across channels (cross-platform-reach-channels)
+* [ ] FEATURE: Agent Teams sub-agents spawning (agent-teams-sub-agents)
+ Inspired by trend #4 in docs/trends.md: Implement a plugin architecture for the Context Engine to manage context dynamically using lifecycle hooks.
+* [x] FEATURE: Agent Team Delegation Protocol (agent-team-delegation-protocol)
+* [x] FEATURE: Online RL from User Feedback (online-rl-feedback-loop)
+* [x] FEATURE: MCP Tools Integration Engine (mcp-tools-integration-v2)
+
+- [x] acs-runtime-safety-controls-v4: ACS Runtime Safety Controls v4
+* [x] FEATURE: A2A Agent Discovery v4 (a2a-agent-discovery-v4)
+* [x] FEATURE: Agent Teams via Git Worktree Isolation (agent-teams-claude-sdk)
+- [x] openclaw-rl-interactive-learning-v3: OpenClaw-RL Interactive Learning
+* [x] FEATURE: MCP Action Tools Expansion (mcp-action-tools-v3)
+* [x] FEATURE: A2A Task Delegation (v3)
+* [x] FEATURE: Longitudinal Quality Metrics CLI
+* [x] FEATURE: Agent Skills MCP Export Enhancements (agent-skills-mcp-export)
+* [x] FEATURE: Multi-Channel Skills Sync (2026-06-XX)
+* [x] FEATURE: A2A Agent Cards Discovery (2026-06-05)
+* [x] MODULE: **A2A Agent Discovery Service** - `magda_agent/integration/discovery.py`. Discovers peers via Agent Cards.
+* [x] MODULE: **ASSERT Evaluator** — модуль magda_agent/metacognition/assert_evaluator.py.
+* [x] FEATURE: Multi-channel gateway (Telegram + Discord + API) (2026-06-05)
+* [x] MODULE: **User Model** — модуль `magda_agent/user_model/model.py`. (2026-06-05)
+ Builds and maintains a persistent user model: preferences, communication style, expertise level, recurring topics.
+
+
+* [x] SECURITY: Добавить whitelist для Telegram-пользователей (2026-06-03)
+* [x] BUG: Обработка асинхронных ошибок в main.py (2026-06-03)
+* [x] FEATURE: Поиск в интернете через DuckDuckGo (2026-06-03)
+* [x] ARCHITECTURE: Вынести Consciousness в микросервис (2026-06-03)
+* [x] FEATURE: Healthcheck endpoint (2026-06-03)
+* [x] SECURITY: Изолировать system_execute_code — subprocess с таймаутом (2026-06-03)
+
+---
+
+## 🔍 Обнаружено (добавляется агентом автоматически)
+* [x] MODULE: **Conflict Detection Memory** — `magda_agent/memory/semantic.py` и `magda_agent/subconsciousness/reflection.py`. Subconsciousness detects when new information contradicts existing semantic memory and flags conflicts for resolution.
+* [x] IMPROVEMENT: Добавить механизм выполнения шагов плана и сбора результатов внутри `Consciousness.process_input`. Сейчас планер интегрирован только для генерации и учета в контексте LLM, но сами функции Skills не вызываются автоматически. (2026-06-03)
+* [x] BUG/IMPROVEMENT: В `Evaluator.evaluate_response` можно добавить логику retry на случай, если LLM возвращает невалидный JSON, вместо того, чтобы сразу падать с ошибкой парсинга. (2026-06-04)
+* [x] IMPROVEMENT: В модуле `Cerebellum` (`HabitTracker`) сейчас используется точное совпадение текста запроса. Можно улучшить, добавив семантический поиск (через эмбеддинги и ChromaDB) для нечеткого совпадения намерений пользователя. (2026-06-04)
+* [x] IMPROVEMENT: Различные модули памяти (например, `LongTermMemory`) в данный момент не учитывают `user_id`. Требуется их обновление для поддержки контекста, специфичного для каждого пользователя (мультипользовательский режим). (2026-06-04)
+* [x] IMPROVEMENT: В `MemorySystem` `retrieve_relevant` сейчас использует простой поиск подстрок. Можно улучшить, перейдя на векторный поиск (ChromaDB) для более релевантного и семантического извлечения воспоминаний краткосрочной/долгосрочной памяти в оперативной памяти. (2025-02-14)
+* [x] MODULE: **Speech Processing (Голосовой интерфейс)** — модуль `magda_agent/speech/processor.py` (2026-06-05)
+ Обработка голосовых сообщений: Speech-to-Text (openai/whisper-tiny) и Text-to-Speech (microsoft/speecht5_tts).
+ Методы `stt(audio_path)` и `tts(text, output_path)`.
+ Интеграция: main.py перехватывает voice, использует processor, обращается к Consciousness API, и возвращает ответ голосом.
+* [x] MODULE: **Subconsciousness (Подсознание)** — модуль `magda_agent/subconsciousness/reflection.py`. (2025-02-14)
+ Фоновые процессы рефлексии и консолидации памяти.
+ Метод `reflect()` — анализ недавних событий и корректировка эмоций, консолидация памяти.
+ Интеграция: Вызывается периодически как фоновая задача.
+ Тесты: mock LLM, проверить что рефлексия запускается и `memory.consolidate()` вызывается.
+* [x] IMPROVEMENT: Implement gracefully shutdown for `MemorySystem`'s ephemeral ChromaDB client to prevent resource leaks. Add `close()` method to `MemorySystem` and call it in `api.py` lifespan shutdown. (2026-06-04)
+* [x] IMPROVEMENT: In `Subconsciousness.reflect`, the LLM prompt for reflection could be more structured to consistently receive PAD adjustments that are then parsed and applied, rather than just hardcoding a dominance increase. (2026-06-04)
+* [ ] IMPROVEMENT: `MemorySystem` has a `long_term` list which seems redundant if `LongTermMemory` module is also used. Need to unify long-term memory storage.
+* [ ] IMPROVEMENT: In `PinealGland._get_current_time`, consider allowing the timezone to be configured via the user profile rather than relying on system local time.
+
+* [ ] BUG: `Brainstem` integration in `Consciousness.process_input` does not halt long-running skills gracefully upon a 'stop' command. Need to implement a cancellation token or mechanism for active background tasks when a stop reflex is triggered. (2026-06-04)
+## 🛠️ Запланированные Skills
+* [ ] FEATURE: OpenClaw Canvas Live Visualization
+* [ ] FEATURE: OpenClaw RL Next-State Signals
+* [ ] FEATURE: Claude Subagent Spawning
+* [x] FEATURE: MCP server-prefixed tools support (mcp-server-prefixed-tools) (2026-06-11)
+
+* [x] SKILL: **Omnichannel Provider (Работа с провайдерами)** — модуль `magda_agent/skills/omnichannel.py`. (2026-06-04)
+ Умение работы с разными провайдерами (Telegram, WhatsApp и другие) для взаимодействия с агентом.
+* [ ] SKILL: **Time Management (Управление временем)** — модуль `magda_agent/skills/time_management.py`. Навык установки таймеров, напоминаний и управления расписанием пользователя.
+* [ ] SKILL: **Weather Forecasting (Погода)** — модуль `magda_agent/skills/weather.py`. Получение прогноза погоды через внешнее API (например, OpenWeatherMap) по названию города или геолокации.
+* [ ] SKILL: **News Aggregator (Агрегатор новостей)** — модуль `magda_agent/skills/news.py`. Сбор актуальных новостей по запросу пользователя из различных RSS-потоков или API.
+* [ ] SKILL: **Task Manager (Менеджер задач)** — модуль `magda_agent/skills/task_manager.py`. Интеграция с To-Do листами, создание и отслеживание задач (например, Trello или Notion API).
+* [ ] SKILL: **Math Solver (Калькулятор и вычисления)** — модуль `magda_agent/skills/math_solver.py`. Решение сложных математических уравнений и конвертация величин.
+* [ ] SKILL: **Translation (Переводчик)** — модуль `magda_agent/skills/translator.py`. Перевод текста между языками с использованием внешних API (Google Translate или DeepL).
+* [ ] SKILL: **Image Generator (Генерация изображений)** — модуль `magda_agent/skills/image_gen.py`. Создание изображений по текстовому описанию (интеграция с DALL-E или Stable Diffusion).
+* [ ] SKILL: **Smart Home Control (Умный дом)** — модуль `magda_agent/skills/smart_home.py`. Интеграция с системами умного дома (Home Assistant, MQTT) для управления устройствами.
+* [ ] SKILL: **Crypto Prices (Курсы криптовалют)** — модуль `magda_agent/skills/crypto.py`. Получение актуальных курсов криптовалют с бирж (Binance, CoinMarketCap).
+
+* [x] MODULE: **Curiosity Drive** — `magda_agent/exploration/curiosity.py`. (2026-06-05)
+ Proactively suggests exploration tasks when boredom is high.
+* [ ] FEATURE: MCPKernel Taint Tracking
+* [x] FEATURE: ASSERT Policy-Driven Evaluation
+
+* [x] MODULE: **Operations Cron Scheduler** — модуль `magda_agent/operations/cron.py`. (2026-06-09)
+ Отвечает за cron-подобные фоновые задачи без участия пользователя.
+ Интеграция: Вызывается в `api.py` при старте.
+ Тесты: mock _get_now, проверить логику scheduler._execute_job.