From 5063e0d12e260dce9e2d3815abc994f6ec5c4f71 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 18 Sep 2026 15:27:31 +0000 Subject: [PATCH] refactor(mls): move the group manager and stores to marmot/groups/ `MlsGroupManager` names `nostrGroupId` 147 times, stages Marmot's `group-lifecycle-v1` disband commits, and enforces MIP-01's "only admins may update group extensions". It is Marmot's binding layer, not the RFC 9420 engine, and every consumer outside quartz already says so: MarmotManager, MarmotInboundProcessor, MarmotOutboundProcessor, MarmotBenchmarks. `MlsGroupStateStore` and `MarmotMessageStore` go with it -- both are keyed on the hex Nostr group id from MIP-01's `h` tag, and nothing in the engine references either. That removes 2 of the engine's 10 `marmot/` imports without needing an interface: the two that were Marmot's, in code that was Marmot's. Names are unchanged on purpose. The package path already says whose manager this is, and renaming four classes would churn 22 files across five modules for clarity the path gives for free. After this the engine has no manager at all, so there is nothing for `MlsGroupManager` to be confused with. `:quartz:jvmTest` 5074, unchanged. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_012BfD4txdnsaPRXmNXbup9n --- .../main/java/com/vitorpamplona/amethyst/model/Account.kt | 4 ++-- .../amethyst/model/marmot/AndroidMarmotMessageStore.kt | 2 +- .../amethyst/model/marmot/AndroidMlsGroupStateStore.kt | 2 +- .../com/vitorpamplona/amethyst/cli/stores/FileStores.kt | 4 ++-- .../amethyst/commons/marmot/InMemoryMlsGroupStateStore.kt | 2 +- .../amethyst/commons/marmot/MarmotManager.kt | 6 +++--- .../amethyst/commons/marmot/LegacyGroupContractTest.kt | 2 +- .../commons/marmot/MarmotAgentStreamWatcherTest.kt | 4 ++-- .../commons/marmot/MarmotKeyPackageRotationProfileTest.kt | 4 ++-- .../commons/marmot/MarmotManagerLeaveRejoinTest.kt | 4 ++-- .../amethyst/commons/marmot/MarmotManagerRestoreTest.kt | 4 ++-- .../commons/marmot/MarmotPublishBeforeApplyTest.kt | 2 +- .../commons/marmot/MarmotPublishDurabilityTest.kt | 2 +- .../amethyst/commons/marmot/MarmotTestStores.kt | 4 ++-- .../main/kotlin/com/vitorpamplona/marmotbench/Fixtures.kt | 4 ++-- .../vitorpamplona/quartz/marmot/MarmotInboundProcessor.kt | 2 +- .../quartz/marmot/MarmotOutboundProcessor.kt | 2 +- .../{mls/group => marmot/groups}/MarmotMessageStore.kt | 2 +- .../{mls/group => marmot/groups}/MlsGroupManager.kt | 8 ++++++-- .../{mls/group => marmot/groups}/MlsGroupStateStore.kt | 2 +- .../quartz/marmot/protocolCore/MarmotConvergenceEngine.kt | 2 +- .../quartz/marmot/protocolCore/MarmotPublishGate.kt | 2 +- .../quartz/marmot/MarmotConvergenceWiringTest.kt | 2 +- .../vitorpamplona/quartz/marmot/MarmotMipBehaviorTest.kt | 2 +- .../com/vitorpamplona/quartz/marmot/MarmotPipelineTest.kt | 4 ++-- .../quartz/{mls => marmot/groups}/MlsGroupManagerTest.kt | 6 +++--- 26 files changed, 44 insertions(+), 40 deletions(-) rename quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/{mls/group => marmot/groups}/MarmotMessageStore.kt (99%) rename quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/{mls/group => marmot/groups}/MlsGroupManager.kt (99%) rename quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/{mls/group => marmot/groups}/MlsGroupStateStore.kt (98%) rename quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/{mls => marmot/groups}/MlsGroupManagerTest.kt (98%) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index cd4d2615d8..251c86a90e 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -208,7 +208,7 @@ import com.vitorpamplona.quartz.experimental.profileGallery.image import com.vitorpamplona.quartz.experimental.profileGallery.mimeType import com.vitorpamplona.quartz.marmot.appComponents.agentTextStream.transport.MarmotQuicTransport import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageEvent -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.core.Address import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.HexKey @@ -377,7 +377,7 @@ class Account( val client: INostrClient, val scope: CoroutineScope, val mlsGroupStateStore: MlsGroupStateStore? = null, - val marmotMessageStore: com.vitorpamplona.quartz.mls.group.MarmotMessageStore? = null, + val marmotMessageStore: com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore? = null, val marmotKeyPackageStore: com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore? = null, /** * Durable publish obligations. Null means publish-before-apply does not diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMarmotMessageStore.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMarmotMessageStore.kt index 69efc1ac4d..16b28eb4ec 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMarmotMessageStore.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMarmotMessageStore.kt @@ -21,7 +21,7 @@ package com.vitorpamplona.amethyst.model.marmot import com.vitorpamplona.amethyst.model.preferences.KeyStoreEncryption -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.utils.Log import kotlinx.coroutines.Dispatchers diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMlsGroupStateStore.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMlsGroupStateStore.kt index ebd6e52836..47cfc73eb2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMlsGroupStateStore.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/marmot/AndroidMlsGroupStateStore.kt @@ -21,7 +21,7 @@ package com.vitorpamplona.amethyst.model.marmot import com.vitorpamplona.amethyst.model.preferences.KeyStoreEncryption -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.utils.Log import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext diff --git a/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/stores/FileStores.kt b/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/stores/FileStores.kt index 2c759593ba..dfd9a9f0bd 100644 --- a/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/stores/FileStores.kt +++ b/cli/src/main/kotlin/com/vitorpamplona/amethyst/cli/stores/FileStores.kt @@ -24,8 +24,8 @@ import com.vitorpamplona.amethyst.cli.SecureFileIO import com.vitorpamplona.amethyst.commons.util.deleteOrWarn import com.vitorpamplona.quartz.marmot.MarmotIngestDedupStore import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.marmot.protocolCore.MarmotPublishObligationStore import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.HexKey diff --git a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/InMemoryMlsGroupStateStore.kt b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/InMemoryMlsGroupStateStore.kt index b62e45724d..d90de943c3 100644 --- a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/InMemoryMlsGroupStateStore.kt +++ b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/InMemoryMlsGroupStateStore.kt @@ -20,7 +20,7 @@ */ package com.vitorpamplona.amethyst.commons.marmot -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.utils.concurrent.ConcurrentMap /** diff --git a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManager.kt b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManager.kt index 466b347568..9992b39279 100644 --- a/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManager.kt +++ b/commons/src/commonMain/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManager.kt @@ -59,10 +59,10 @@ import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData import com.vitorpamplona.quartz.marmot.mip02Welcome.WelcomeEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEventEncryption -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore import com.vitorpamplona.quartz.mls.group.MlsGroup -import com.vitorpamplona.quartz.mls.group.MlsGroupManager -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.mls.messages.CommitResult import com.vitorpamplona.quartz.mls.tree.Credential import com.vitorpamplona.quartz.marmot.protocolCore.GroupLifecycleState diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/LegacyGroupContractTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/LegacyGroupContractTest.kt index ef5642924f..8dd2d9b75d 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/LegacyGroupContractTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/LegacyGroupContractTest.kt @@ -92,7 +92,7 @@ class LegacyGroupContractTest { ) } - private class ProbeStateStore : com.vitorpamplona.quartz.mls.group.MlsGroupStateStore { + private class ProbeStateStore : com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore { private val states = mutableMapOf() private val retained = mutableMapOf>() diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotAgentStreamWatcherTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotAgentStreamWatcherTest.kt index 9b01f5176d..46c8199cf7 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotAgentStreamWatcherTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotAgentStreamWatcherTest.kt @@ -29,8 +29,8 @@ import com.vitorpamplona.quartz.marmot.appComponents.agentTextStream.transport.M import com.vitorpamplona.quartz.marmot.appComponents.agentTextStream.transport.MarmotQuicTransport import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal import kotlinx.coroutines.CompletableDeferred diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotKeyPackageRotationProfileTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotKeyPackageRotationProfileTest.kt index abee5063ea..fa0559a990 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotKeyPackageRotationProfileTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotKeyPackageRotationProfileTest.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.amethyst.commons.marmot import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageUtils -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerLeaveRejoinTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerLeaveRejoinTest.kt index 3b72a404df..9a4e698a3f 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerLeaveRejoinTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerLeaveRejoinTest.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.amethyst.commons.marmot import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerRestoreTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerRestoreTest.kt index ed22602197..f0eea22f23 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerRestoreTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotManagerRestoreTest.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.amethyst.commons.marmot import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishBeforeApplyTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishBeforeApplyTest.kt index c0cbeace69..7e20aa987a 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishBeforeApplyTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishBeforeApplyTest.kt @@ -439,7 +439,7 @@ class MarmotPublishBeforeApplyTest { assertEquals(listOf(relay), fx.manager.groupRelays(fx.groupId)) } - private class InMemoryStateStore : com.vitorpamplona.quartz.mls.group.MlsGroupStateStore { + private class InMemoryStateStore : com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore { private val states = mutableMapOf() private val retained = mutableMapOf>() diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishDurabilityTest.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishDurabilityTest.kt index 75d27d756e..f40b90cbce 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishDurabilityTest.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotPublishDurabilityTest.kt @@ -21,7 +21,7 @@ package com.vitorpamplona.amethyst.commons.marmot import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.marmot.protocolCore.GroupLifecycleState import com.vitorpamplona.quartz.marmot.protocolCore.MarmotPublishObligationStore import com.vitorpamplona.quartz.nip01Core.core.Event diff --git a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotTestStores.kt b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotTestStores.kt index a0f11c8ab4..6bf03cf957 100644 --- a/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotTestStores.kt +++ b/commons/src/jvmTest/kotlin/com/vitorpamplona/amethyst/commons/marmot/MarmotTestStores.kt @@ -21,8 +21,8 @@ package com.vitorpamplona.amethyst.commons.marmot import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.core.Event // In-memory stand-ins for the durable stores a MarmotManager needs. diff --git a/marmotBench/src/main/kotlin/com/vitorpamplona/marmotbench/Fixtures.kt b/marmotBench/src/main/kotlin/com/vitorpamplona/marmotbench/Fixtures.kt index 7cd45721db..aeb258a366 100644 --- a/marmotBench/src/main/kotlin/com/vitorpamplona/marmotbench/Fixtures.kt +++ b/marmotBench/src/main/kotlin/com/vitorpamplona/marmotbench/Fixtures.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.marmotbench import com.vitorpamplona.amethyst.commons.marmot.MarmotPublisher import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageBundleStore -import com.vitorpamplona.quartz.mls.group.MarmotMessageStore -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore +import com.vitorpamplona.quartz.marmot.groups.MarmotMessageStore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.core.Event // In-memory stores, matching the commons test doubles byte for byte. diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotInboundProcessor.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotInboundProcessor.kt index bec0f3b872..a1c6d5fb53 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotInboundProcessor.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotInboundProcessor.kt @@ -21,6 +21,7 @@ package com.vitorpamplona.quartz.marmot import com.vitorpamplona.quartz.marmot.foundation.appEvents.MarmotAppEvent +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRotationManager import com.vitorpamplona.quartz.marmot.mip02Welcome.WelcomeEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent @@ -36,7 +37,6 @@ import com.vitorpamplona.quartz.mls.framing.MlsMessage import com.vitorpamplona.quartz.mls.framing.PrivateMessage import com.vitorpamplona.quartz.mls.framing.PublicMessage import com.vitorpamplona.quartz.mls.framing.WireFormat -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.mls.group.MlsGroupState import com.vitorpamplona.quartz.mls.messages.KeyPackageBundle import com.vitorpamplona.quartz.mls.messages.Welcome diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotOutboundProcessor.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotOutboundProcessor.kt index af786e9afb..e20c211934 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotOutboundProcessor.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/MarmotOutboundProcessor.kt @@ -21,10 +21,10 @@ package com.vitorpamplona.quartz.marmot import com.vitorpamplona.quartz.marmot.foundation.appEvents.MarmotAppEvent +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEventEncryption -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.nip01Core.core.Event import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MarmotMessageStore.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MarmotMessageStore.kt similarity index 99% rename from quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MarmotMessageStore.kt rename to quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MarmotMessageStore.kt index 46d3adffba..0aa6701074 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MarmotMessageStore.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MarmotMessageStore.kt @@ -18,7 +18,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.mls.group +package com.vitorpamplona.quartz.marmot.groups /** * Encrypted local storage for decrypted Marmot inner event JSONs. diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupManager.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManager.kt similarity index 99% rename from quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupManager.kt rename to quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManager.kt index 56e22382bc..4bd4334f40 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupManager.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManager.kt @@ -18,16 +18,20 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.mls.group +package com.vitorpamplona.quartz.marmot.groups import com.vitorpamplona.quartz.marmot.appComponents.AdminPolicyV1 import com.vitorpamplona.quartz.marmot.appComponents.GroupLifecycleV1 +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager.Companion.EPOCH_RETENTION_WINDOW import com.vitorpamplona.quartz.mls.codec.TlsReader import com.vitorpamplona.quartz.mls.codec.TlsWriter import com.vitorpamplona.quartz.mls.components.ComponentsList import com.vitorpamplona.quartz.mls.crypto.MlsCryptoProvider import com.vitorpamplona.quartz.mls.framing.PublicMessage -import com.vitorpamplona.quartz.mls.group.MlsGroupManager.Companion.EPOCH_RETENTION_WINDOW +import com.vitorpamplona.quartz.mls.group.DecryptedMessage +import com.vitorpamplona.quartz.mls.group.MlsGroup +import com.vitorpamplona.quartz.mls.group.MlsGroupState +import com.vitorpamplona.quartz.mls.group.RetainedEpochSecrets import com.vitorpamplona.quartz.mls.messages.CommitResult import com.vitorpamplona.quartz.mls.messages.ExternalJoinResult import com.vitorpamplona.quartz.mls.messages.KeyPackageBundle diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupStateStore.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupStateStore.kt similarity index 98% rename from quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupStateStore.kt rename to quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupStateStore.kt index 9ca0535f15..f43be1e694 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/mls/group/MlsGroupStateStore.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupStateStore.kt @@ -18,7 +18,7 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.mls.group +package com.vitorpamplona.quartz.marmot.groups /** * Interface for encrypted local storage of MLS group state. diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotConvergenceEngine.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotConvergenceEngine.kt index 7aeeb5983e..b6f3411c0a 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotConvergenceEngine.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotConvergenceEngine.kt @@ -20,9 +20,9 @@ */ package com.vitorpamplona.quartz.marmot.protocolCore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.mls.framing.ContentType import com.vitorpamplona.quartz.mls.group.MlsGroup -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.mls.group.MlsGroupState import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotPublishGate.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotPublishGate.kt index 0deaa7438c..e8f25d488c 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotPublishGate.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/marmot/protocolCore/MarmotPublishGate.kt @@ -20,9 +20,9 @@ */ package com.vitorpamplona.quartz.marmot.protocolCore +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.mls.codec.TlsReader import com.vitorpamplona.quartz.mls.codec.TlsWriter -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.mls.group.MlsGroupState import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.toHexKey diff --git a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotConvergenceWiringTest.kt b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotConvergenceWiringTest.kt index 42969d12a6..8565bc6982 100644 --- a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotConvergenceWiringTest.kt +++ b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotConvergenceWiringTest.kt @@ -20,6 +20,7 @@ */ package com.vitorpamplona.quartz.marmot +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRotationManager import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent @@ -28,7 +29,6 @@ import com.vitorpamplona.quartz.marmot.protocolCore.ConvergencePolicy import com.vitorpamplona.quartz.marmot.protocolCore.ConvergenceStatus import com.vitorpamplona.quartz.marmot.protocolCore.GroupLifecycleState import com.vitorpamplona.quartz.marmot.protocolCore.MarmotConvergenceEngine -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.utils.sha256.sha256 import kotlinx.coroutines.runBlocking diff --git a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotMipBehaviorTest.kt b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotMipBehaviorTest.kt index 0378f78edf..4eaaa5c29b 100644 --- a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotMipBehaviorTest.kt +++ b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotMipBehaviorTest.kt @@ -20,12 +20,12 @@ */ package com.vitorpamplona.quartz.marmot +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData import com.vitorpamplona.quartz.marmot.mip02Welcome.WelcomeEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent import com.vitorpamplona.quartz.mls.codec.TlsReader import com.vitorpamplona.quartz.mls.group.MlsGroup -import com.vitorpamplona.quartz.mls.group.MlsGroupManager import com.vitorpamplona.quartz.mls.messages.KeyPackageBundle import com.vitorpamplona.quartz.nip01Core.core.hexToByteArray import com.vitorpamplona.quartz.nip01Core.core.toHexKey diff --git a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotPipelineTest.kt b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotPipelineTest.kt index 67ff8e0e19..73eaf4d668 100644 --- a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotPipelineTest.kt +++ b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/MarmotPipelineTest.kt @@ -20,13 +20,13 @@ */ package com.vitorpamplona.quartz.marmot +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.marmot.mip00KeyPackages.KeyPackageRotationManager import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEvent import com.vitorpamplona.quartz.marmot.mip03GroupMessages.GroupEventEncryption import com.vitorpamplona.quartz.marmot.protocolCore.ConvergenceStatus import com.vitorpamplona.quartz.marmot.protocolCore.GroupLifecycleState -import com.vitorpamplona.quartz.mls.group.MlsGroupManager -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore import com.vitorpamplona.quartz.nip01Core.core.toHexKey import com.vitorpamplona.quartz.nip01Core.crypto.KeyPair import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerInternal diff --git a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/mls/MlsGroupManagerTest.kt b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManagerTest.kt similarity index 98% rename from quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/mls/MlsGroupManagerTest.kt rename to quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManagerTest.kt index 5cbe45132c..6eb6eb87d3 100644 --- a/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/mls/MlsGroupManagerTest.kt +++ b/quartz/src/jvmAndroidTest/kotlin/com/vitorpamplona/quartz/marmot/groups/MlsGroupManagerTest.kt @@ -18,12 +18,12 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.mls +package com.vitorpamplona.quartz.marmot.groups +import com.vitorpamplona.quartz.marmot.groups.MlsGroupManager +import com.vitorpamplona.quartz.marmot.groups.MlsGroupStateStore import com.vitorpamplona.quartz.marmot.mip01Groups.MarmotGroupData import com.vitorpamplona.quartz.mls.group.MlsGroup -import com.vitorpamplona.quartz.mls.group.MlsGroupManager -import com.vitorpamplona.quartz.mls.group.MlsGroupStateStore import kotlinx.coroutines.runBlocking import kotlin.test.Test import kotlin.test.assertContentEquals