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.
28 lines
1.2 KiB
Groovy
28 lines
1.2 KiB
Groovy
plugins {
|
|
id 'java-library'
|
|
id 'org.jetbrains.kotlin.jvm'
|
|
id 'org.jetbrains.kotlin.plugin.serialization'
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(":core:tools")
|
|
implementation project(":core:events")
|
|
implementation project(":core:inference")
|
|
implementation project(":core:approvals")
|
|
implementation project(":core:sessions")
|
|
implementation project(":infrastructure:inference")
|
|
implementation project(":infrastructure:inference:commons")
|
|
implementation project(":infrastructure:inference:llama_cpp")
|
|
implementation project(":infrastructure:persistence")
|
|
implementation project(":infrastructure:tools")
|
|
implementation project(":infrastructure:tools:filesystem")
|
|
implementation project(":infrastructure:workflow")
|
|
implementation project(":core:artifacts")
|
|
implementation project(":core:artifacts-store")
|
|
implementation project(":infrastructure:artifacts-cas")
|
|
implementation "io.ktor:ktor-client-core:$ktor_version"
|
|
implementation "io.ktor:ktor-client-cio:$ktor_version"
|
|
implementation "io.ktor:ktor-client-content-negotiation:$ktor_version"
|
|
implementation "io.ktor:ktor-serialization-kotlinx-json:$ktor_version"
|
|
}
|