# :storage-inmemory — `pw.binom.agentik.storage.inmemory` **In-memory реализация всех 4 сторов из `:storage-core`.** Без платформенного IO, KMP-таргеты полностью. Тред-безопасна через `Mutex`. ## Какую проблему решает - **Тесты** — мгновенный setup/teardown, нет файловой системы, нет JDBC, детерминированное состояние. - **Embedded-сценарии** (Android ART, iOS) где SQLDelight native-драйвер пока недоступен или избыточен. - **Отладка** — можно в рантайме дампить `MessageStore.listByConversation()` и смотреть что попало в working memory без sqlite3 CLI. Семантика **полностью совпадает** с `:storage-sqlite`: один и тот же контракт `:storage-core`, одинаковые `AutoCloseable`, одинаковая тред-безопасность. ## Подключение ```kotlin commonMain { implementation("pw.binom.agentik:storage-inmemory:$version") } // Использование val bundle = InMemoryStorageBundle(clock = Clock.System) val conv = bundle.conversations.upsert(Conversation(id = "test", title = "demo", createdAt = now)) bundle.messages.append(message = UserMessage("hi"), conversationId = conv.id, workingMemoryIndex = 0) ``` ## Где смотреть версии - `version` из `gradle.properties` (`version=0.1.0`) - релизы: `https://git.binom.pw/subochev/agentik/releases` ## Сборка ```bash ./gradlew :storage-inmemory:build ``` KMP-таргеты — полный набор. Зависимости — только `:storage-core`.