val caffeineRepo = providers.gradleProperty("caffeineRepo").getOrElse("http://192.168.76.117/repository/caffeine") pluginManagement { repositories { gradlePluginPortal() mavenCentral() google() } } dependencyResolutionManagement { repositories { // Сначала mavenLocal — чтобы локально опубликованные версии // (через publishToMavenLocal) перекрывали caffeine. mavenLocal() mavenCentral() google() // Home Nexus, репо "caffeine": pw.binom.* (a2a, text-embedding-kmp с v4, // ksqlite до v0.1.1-SNAPSHOT — теперь в Maven Central, ...) maven { name = "caffeine" url = uri(caffeineRepo) setAllowInsecureProtocol(true) } } } rootProject.name = "agentik" include(":standalone") // Generic LLM-side tools: LlmReflector, SkillMiner, LlmMemoryReviewer, // ContextCompactor + парсеры/промпты. Вынесены из :standalone (god class) // — переиспользуемы в :agentik-cli / :agentik-tui и любых других клиентах. include(":llm-tools") // Generic MCP-bridge: McpConfig, McpRegistry, McpLiteToolAdapter. Вынесены // из :standalone — MCP не специфичен для standalone'а, это generic мост // между MCP-SDK и LiteTool. include(":mcp-bridge") // Собственный протокол agentik. Пока в нём пилим, потом вынесем. include(":proto") // Парсер скилов (YAML-frontmatter + markdown body, opencode-style). include(":skills") // Ktor-сервер, экспонирующий Agent по HTTP (SSE + JSON). include(":server") // Ktor-клиент, превращающий HTTP-фасад в `Agent`/`Conversation`. include(":client") // CLI-клиент поверх :client — REPL со slash-командами и стримингом ответов. // KMP со всеми целями (jvm + весь натив), jvm-таргет собирается как shadowJar. // include(":agentik-cli") — отключено 2026-09-21: пользователь временно вывел // из сборки. Папка agentik-cli/ осталась на диске для возможного возврата. // TUI-клиент поверх :client — Compose-style UI (Mosaic от Jake Wharton), // рендерится в ANSI-терминал. KMP со всеми desktop-целями (без ios). // include(":agentik-tui") — отключено 2026-09-17: пользователь признал TUI-подход неудачным. // Папка agentik-tui/ оставлена на диске для возможного возврата; из сборки исключена. // Встраиваемая долговременная память агента. `:memory-api` — интерфейсы, // `:memory-md` — реализация на базе §-файлов (Hermes-style). include(":memory-api") include(":memory-md") // Vector-бэкенд долговременной памяти поверх JVector (ANN-индекс) + SQLite // для метаданных. JVM-only (JVector не имеет KMP-таргетов). На Android ART // работает через Java 11 base classes (scalar fallback). include(":memory-vector") // Интерфейсы хранилища и разговорной истории. Контракты распределены по // доменам: :journal-api (MutableJournalStore/MutableConversationStore), // :context-api (ContextStore), :reflection-api (ReflectionStore). // Реализации — :journal-ksqlite/:context-ksqlite/:reflection-ksqlite (ksqlite) // и :journal-inmemory/:reflection-inmemory (in-memory). //include(":message-store-api") — перенесено в :journal-api (ConversationRecord/ConversationStore/Ids) // и :reflection-api (Reflection/ReflectionStore/ReflectionEvent/Ids) // Модуль удалён с диска. include(":reflection-api") // Новые API-модули трёх сущностей (canonical имена): // - :journal-api — append-only audit log (бывший :message-log-api) // - :context-api — то что видит LLM (бывший :working-memory-api) // - :outbox-api — bounded-tail event stream (бывший :event-store) // Старые модули :message-log-api / :working-memory-api / :event-store // остаются на диске — миграция consumers'ов по чуть-чуть, отдельно. include(":journal-api") include(":context-api") include(":outbox-api") // Общие типы содержимого сообщения (Content/MessageContext/MessageOrigin/ // TurnTokens). Вынесены в отдельный низкоуровневый модуль, чтобы ими // пользовались И :proto, И :journal-api, И :outbox-api (message-события // несут List + MessageContext) без дублирования типов и циклов // в графе зависимостей. include(":content-api") // Bounded-tail event log с auto-TTL. Двухуровневое хранилище: этот модуль — // короткий live tail + recent replay; полный audit log живёт в :message-store-api // (там — MessageStore + ConversationStore). EventStore сам управляет eviction, // никаких prune-методов наружу. KMP, без implementations пока. //include(":event-store") // KMP in-memory реализация MutableEventStore. ConcurrentLinkedDeque + TTL/size // eviction. Для тестов, dev-режима, embedded-сценариев (Android core). include(":outbox-inmemory") include(":journal-inmemory") // Гибридное хранилище памяти: .md файлы (single source of truth) + // ksqlite vector-кэш (sqlite-vec vec0) + reconcile + hybrid search. // Заменяет чисто-keyword :memory-md там, где нужен семантический поиск. include(":memory-md-vector") //include(":event-store-in-memory") //include(":working-memory-api") // SQLDelight-реализация store'ов из :journal-api и :context-api. JVM-only // KMP-реализация EventStore поверх ksqlite (https://github.com/caffeine-mgn/ksqlite). // Цель: проверить что pure-Kotlin SQLite с sqlite-vec заменяет SQLDelight+JVector // на KMP-таргетах (JVM + linuxX64 + mingwX64). Apple targets auto-disabled на // Linux — собираются локально на macOS. Пока покрывает только EventStore; // остальные store'ы мигрируют после стабилизации ksqlite и реального // использования на Android-агенте. // ksqlite-реализация :context-api (ContextStore / working_memory table). // Минимальный модуль: только таблица `working_memory` + 2 индекса. include(":context-ksqlite") // ksqlite-реализация :journal-api (JournalStore / message table, // ConversationStore / conversation table). Минимальный модуль: // таблицы `message` + `conversation` + индексы. include(":journal-ksqlite") // ksqlite-реализация :reflection-api (ReflectionStore / reflection table). // Минимальный модуль: только таблица `reflection` + 2 индекса. include(":reflection-ksqlite") // in-memory реализация :reflection-api (ReflectionStore). Используется в // тестах, dev-режиме и embedded-сценариях. Чистый KMP (9 таргетов), // никакого I/O. include(":reflection-inmemory") // Ядро механики toolsets: ToolsetRegistry + ToolsetDispatchPolicy + встроенные // тулы enable_toolset/disable_toolset. KMP, не зависит от :standalone, может быть // переиспользован в Android-сборке. Интеграция с ChatAgent — commit 5+. include(":agent-toolsets") // API-модуль vector-index: интерфейсы ANN-индекса, общие для любых бэкендов // (JVector, sqlite-vec, inmemory, ...). Pure KMP, без реализаций. include(":vector-index-api") // JVector-реализация `MutableVectorIndexStore`. JVM-only — JVector публикуется // только под JVM (нет KMP-таргетов). In-RAM (без persistence в v1). include(":vector-index-jvector") // ksqlite-реализация `MutableVectorIndexStore`. KMP (все 9 целей) — brute-force // ANN: SELECT всех записей + cosine similarity в Kotlin. Persistence — обычная // SQLite БД. Подходит для small-to-medium масштабов; для больших — sqlite-vec // или JVector (выше). include(":vector-index-ksqlite") // Расширяемый слой поверх :proto: `MutableAgent` (наследник Agent + install/uninstall // компонентов), `Component` (install(MutableAgent)/uninstall(MutableAgent)) и три // capability-провайдера (system-prompt, tools, event-listener). Каждый компонент // сам регистрирует свои capability в MutableAgent при install и снимает их при // uninstall. KMP, все 9 целей; чистый API-слой, без реализаций. include(":agent-api") // Skill-подсистема как компонент: тулы skill_save/skill_delete/skill_read + // SkillMiningComponent, слушающий outbox (Event.ConversationClosing / // Event.CompactionTriggered) и добывающий новые скилы через SkillMiner. include(":skill-mining")