219e2c762e
New core:artifacts-store interface + infrastructure/artifacts-cas implementation: segment files + SQLite index, Blake3 hashing, group-commit fsync via flushBefore, recovery tail-scan, manual compactor, and oldest-first disk-cap evictor. Inference events now carry promptArtifactId / responseArtifactId; orchestrators put bytes before emitting. SqliteEventStore wraps its txn in artifactStore.flushBefore so segment data is fsynced before the event commit, making the crash window non-corrupting (TailScanner re-indexes orphan tail records on reopen). Compactor and evictor are mutually exclusive via maintenanceMutex. Step 9 (cloud sync) deferred to a later epic. See docs/reviews/2026-05-18-cas-steps-1-8-review.md for the final review.
17 lines
669 B
Groovy
17 lines
669 B
Groovy
plugins {
|
|
id 'java-library'
|
|
id 'org.jetbrains.kotlin.jvm'
|
|
}
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
|
|
implementation(project(":core:events"))
|
|
implementation(project(":core:artifacts-store"))
|
|
implementation "org.xerial:sqlite-jdbc"
|
|
implementation "org.bouncycastle:bcprov-jdk18on:1.78.1"
|
|
testImplementation "org.junit.jupiter:junit-jupiter"
|
|
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinx_coroutines_version"
|
|
testImplementation(project(":infrastructure:persistence"))
|
|
testImplementation(testFixtures(project(":testing:contracts")))
|
|
}
|