diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0989039..ecea6e1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,14 +2,14 @@ kotlin = "2.3.21" coroutines = "1.11.0" serialization = "1.11.0" -datetime = "0.6.2" +datetime = "0.8.0" ktor = "3.5.0" -sqlite = "3.53.1.0" -jose-jwt = "10.9" -kotlin-logging = "8.0.03" +sqlite = "3.53.2.0" +jose-jwt = "10.9.1" +kotlin-logging = "8.0.4" slf4j = "2.0.18" -logback = "1.5.32" -json-schema-validator = "3.0.2" +logback = "1.5.34" +json-schema-validator = "3.0.3" clikt = "5.1.0" kotest = "6.1.11" ktlint = "14.2.0" diff --git a/lib/src/main/kotlin/dev/arcp/credentials/Credential.kt b/lib/src/main/kotlin/dev/arcp/credentials/Credential.kt index 36e21c6..0cf6fed 100644 --- a/lib/src/main/kotlin/dev/arcp/credentials/Credential.kt +++ b/lib/src/main/kotlin/dev/arcp/credentials/Credential.kt @@ -1,8 +1,8 @@ package dev.arcp.credentials -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.time.Instant /** Provisioned credential scheme. */ @Serializable diff --git a/lib/src/main/kotlin/dev/arcp/credentials/CredentialProvisioner.kt b/lib/src/main/kotlin/dev/arcp/credentials/CredentialProvisioner.kt index 717aa54..7ac41eb 100644 --- a/lib/src/main/kotlin/dev/arcp/credentials/CredentialProvisioner.kt +++ b/lib/src/main/kotlin/dev/arcp/credentials/CredentialProvisioner.kt @@ -3,7 +3,7 @@ package dev.arcp.credentials import dev.arcp.ids.JobId import dev.arcp.lease.CostBudget import dev.arcp.lease.ModelUseLease -import kotlinx.datetime.Instant +import kotlin.time.Instant /** Issues and revokes lease-bound credentials for accepted jobs. */ public interface CredentialProvisioner { diff --git a/lib/src/main/kotlin/dev/arcp/envelope/Envelope.kt b/lib/src/main/kotlin/dev/arcp/envelope/Envelope.kt index 8f28172..ab529a4 100644 --- a/lib/src/main/kotlin/dev/arcp/envelope/Envelope.kt +++ b/lib/src/main/kotlin/dev/arcp/envelope/Envelope.kt @@ -10,8 +10,6 @@ import dev.arcp.ids.SubscriptionId import dev.arcp.ids.TraceId import dev.arcp.json.arcpJson import dev.arcp.messages.MessageType -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.SerialDescriptor @@ -28,6 +26,8 @@ import kotlinx.serialization.json.contentOrNull import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive import kotlinx.serialization.json.put +import kotlin.time.Clock +import kotlin.time.Instant /** * Canonical ARCP message envelope (RFC §6.1). diff --git a/lib/src/main/kotlin/dev/arcp/error/ARCPException.kt b/lib/src/main/kotlin/dev/arcp/error/ARCPException.kt index abcda29..efb9c43 100644 --- a/lib/src/main/kotlin/dev/arcp/error/ARCPException.kt +++ b/lib/src/main/kotlin/dev/arcp/error/ARCPException.kt @@ -2,7 +2,7 @@ package dev.arcp.error import dev.arcp.ids.LeaseId import dev.arcp.ids.PermissionName -import kotlinx.datetime.Instant +import kotlin.time.Instant /** * Base type for every error that originates inside the ARCP runtime or client. diff --git a/lib/src/main/kotlin/dev/arcp/messages/Artifacts.kt b/lib/src/main/kotlin/dev/arcp/messages/Artifacts.kt index 6e0f6e1..ef5595b 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Artifacts.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Artifacts.kt @@ -1,9 +1,9 @@ package dev.arcp.messages import dev.arcp.ids.ArtifactId -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.time.Instant /** * Canonical artifact pointer (RFC §16.1). Embedded inside payloads where a diff --git a/lib/src/main/kotlin/dev/arcp/messages/Control.kt b/lib/src/main/kotlin/dev/arcp/messages/Control.kt index 34b23c4..2bb611d 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Control.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Control.kt @@ -5,10 +5,10 @@ import dev.arcp.ids.JobId import dev.arcp.ids.MessageId import dev.arcp.ids.SessionId import dev.arcp.ids.StreamId -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement +import kotlin.time.Instant /** * `ping` — liveness probe (RFC §6.2 Control). Receivers reply with [Pong]. diff --git a/lib/src/main/kotlin/dev/arcp/messages/Execution.kt b/lib/src/main/kotlin/dev/arcp/messages/Execution.kt index 81b9d5d..290dfa3 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Execution.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Execution.kt @@ -5,11 +5,11 @@ import dev.arcp.error.ErrorCode import dev.arcp.ids.JobId import dev.arcp.ids.MessageId import dev.arcp.ids.ToolName -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject +import kotlin.time.Instant /** `tool.invoke` — direct tool call (RFC §6.2 Execution). */ @Serializable diff --git a/lib/src/main/kotlin/dev/arcp/messages/Permissions.kt b/lib/src/main/kotlin/dev/arcp/messages/Permissions.kt index cf38928..b5b408f 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Permissions.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Permissions.kt @@ -2,9 +2,9 @@ package dev.arcp.messages import dev.arcp.ids.LeaseId import dev.arcp.ids.PermissionName -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.time.Instant /** `permission.request` — runtime asks for a capability grant (RFC §15.4). */ @Serializable diff --git a/lib/src/main/kotlin/dev/arcp/messages/Session.kt b/lib/src/main/kotlin/dev/arcp/messages/Session.kt index 321d85a..24ca99d 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Session.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Session.kt @@ -5,9 +5,9 @@ import dev.arcp.ids.JobId import dev.arcp.ids.MessageId import dev.arcp.ids.SessionId import dev.arcp.ids.TraceId -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable +import kotlin.time.Instant /** * Heartbeat-recovery policy advertised in [Capabilities] (RFC §10.3). diff --git a/lib/src/main/kotlin/dev/arcp/messages/Telemetry.kt b/lib/src/main/kotlin/dev/arcp/messages/Telemetry.kt index 4efd5f2..6a55edb 100644 --- a/lib/src/main/kotlin/dev/arcp/messages/Telemetry.kt +++ b/lib/src/main/kotlin/dev/arcp/messages/Telemetry.kt @@ -1,11 +1,11 @@ package dev.arcp.messages -import kotlinx.datetime.Instant import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive +import kotlin.time.Instant /** Standard log levels (RFC §17.2). */ @Serializable diff --git a/lib/src/main/kotlin/dev/arcp/runtime/ArtifactPutRequest.kt b/lib/src/main/kotlin/dev/arcp/runtime/ArtifactPutRequest.kt index 7c871b9..80d1de6 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/ArtifactPutRequest.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/ArtifactPutRequest.kt @@ -2,7 +2,7 @@ package dev.arcp.runtime import dev.arcp.ids.ArtifactId import dev.arcp.ids.SessionId -import kotlinx.datetime.Instant +import kotlin.time.Instant /** * Parameter object for [ArtifactStore.put]. diff --git a/lib/src/main/kotlin/dev/arcp/runtime/ArtifactStore.kt b/lib/src/main/kotlin/dev/arcp/runtime/ArtifactStore.kt index 95310d7..f9f259e 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/ArtifactStore.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/ArtifactStore.kt @@ -19,13 +19,13 @@ import kotlinx.coroutines.runBlocking import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import java.security.MessageDigest import java.sql.Connection import java.util.Base64 +import kotlin.time.Clock import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds +import kotlin.time.Instant private val log = KotlinLogging.logger {} diff --git a/lib/src/main/kotlin/dev/arcp/runtime/JobCommandHandler.kt b/lib/src/main/kotlin/dev/arcp/runtime/JobCommandHandler.kt index bbccef0..50d1320 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/JobCommandHandler.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/JobCommandHandler.kt @@ -15,8 +15,8 @@ import dev.arcp.messages.JobListEntry import dev.arcp.messages.JobSubmit import dev.arcp.messages.SessionListJobs import dev.arcp.transport.Transport -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock +import kotlin.time.Instant /** * Handles the client-driven job commands `session.list_jobs` and `job.submit`, diff --git a/lib/src/main/kotlin/dev/arcp/runtime/JobInventory.kt b/lib/src/main/kotlin/dev/arcp/runtime/JobInventory.kt index cc72b13..774e191 100644 Binary files a/lib/src/main/kotlin/dev/arcp/runtime/JobInventory.kt and b/lib/src/main/kotlin/dev/arcp/runtime/JobInventory.kt differ diff --git a/lib/src/main/kotlin/dev/arcp/runtime/LeaseParsing.kt b/lib/src/main/kotlin/dev/arcp/runtime/LeaseParsing.kt index 913043c..0645580 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/LeaseParsing.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/LeaseParsing.kt @@ -5,14 +5,14 @@ import dev.arcp.lease.BudgetAmount import dev.arcp.lease.CostBudget import dev.arcp.lease.ModelUseLease import dev.arcp.messages.JobListLease -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import kotlinx.serialization.json.JsonArray import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.contentOrNull import kotlinx.serialization.json.jsonPrimitive import java.math.BigDecimal +import kotlin.time.Clock +import kotlin.time.Instant /** Parses the `cost.budget` lease patterns, or `null` when absent. */ internal fun parseCostBudget(leaseRequest: JsonObject): CostBudget? { diff --git a/lib/src/main/kotlin/dev/arcp/runtime/RuntimeModels.kt b/lib/src/main/kotlin/dev/arcp/runtime/RuntimeModels.kt index f5d740b..28aab61 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/RuntimeModels.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/RuntimeModels.kt @@ -5,8 +5,8 @@ import dev.arcp.ids.SessionId import dev.arcp.lease.CostBudget import dev.arcp.lease.ModelUseLease import dev.arcp.messages.JobAccepted -import kotlinx.datetime.Instant import java.util.concurrent.ConcurrentHashMap +import kotlin.time.Instant /** Active (non-terminal) job state retained by the runtime. */ internal data class RuntimeJob( diff --git a/lib/src/main/kotlin/dev/arcp/runtime/SessionHandshakeHandler.kt b/lib/src/main/kotlin/dev/arcp/runtime/SessionHandshakeHandler.kt index 10ad68c..81050c6 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/SessionHandshakeHandler.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/SessionHandshakeHandler.kt @@ -15,7 +15,7 @@ import dev.arcp.messages.SessionLease import dev.arcp.messages.SessionOpen import dev.arcp.messages.SessionRejected import dev.arcp.messages.SessionUnauthenticated -import kotlinx.datetime.Clock +import kotlin.time.Clock import kotlin.time.Duration /** Result of the session handshake: the resulting state and the reply to send. */ diff --git a/lib/src/main/kotlin/dev/arcp/runtime/SessionState.kt b/lib/src/main/kotlin/dev/arcp/runtime/SessionState.kt index 1753827..be60b07 100644 --- a/lib/src/main/kotlin/dev/arcp/runtime/SessionState.kt +++ b/lib/src/main/kotlin/dev/arcp/runtime/SessionState.kt @@ -3,7 +3,7 @@ package dev.arcp.runtime import dev.arcp.error.ErrorCode import dev.arcp.ids.SessionId import dev.arcp.messages.Capabilities -import kotlinx.datetime.Instant +import kotlin.time.Instant /** * Authoritative session state machine (RFC §8 / §9). diff --git a/lib/src/main/kotlin/dev/arcp/store/EventLog.kt b/lib/src/main/kotlin/dev/arcp/store/EventLog.kt index f014837..ff629e8 100644 --- a/lib/src/main/kotlin/dev/arcp/store/EventLog.kt +++ b/lib/src/main/kotlin/dev/arcp/store/EventLog.kt @@ -170,9 +170,9 @@ public class EventLog private constructor( ps.setString(2, idempotencyKey) ps.executeQuery().use { rs -> if (!rs.next()) return@use null - val expires = kotlinx.datetime.Instant.parse(rs.getString(2)) + val expires = kotlin.time.Instant.parse(rs.getString(2)) if (expires < - kotlinx.datetime.Clock.System + kotlin.time.Clock.System .now() ) { return@use null @@ -191,7 +191,7 @@ public class EventLog private constructor( principal: String, idempotencyKey: String, outcome: JsonElement, - expiresAt: kotlinx.datetime.Instant, + expiresAt: kotlin.time.Instant, ) { withIo { val sql = @@ -206,7 +206,7 @@ public class EventLog private constructor( ps.setString(3, outcome.toString()) ps.setString( 4, - kotlinx.datetime.Clock.System + kotlin.time.Clock.System .now() .toString(), ) diff --git a/lib/src/test/kotlin/dev/arcp/envelope/EnvelopeRoundTripTest.kt b/lib/src/test/kotlin/dev/arcp/envelope/EnvelopeRoundTripTest.kt index ed467ce..63914c1 100644 --- a/lib/src/test/kotlin/dev/arcp/envelope/EnvelopeRoundTripTest.kt +++ b/lib/src/test/kotlin/dev/arcp/envelope/EnvelopeRoundTripTest.kt @@ -12,10 +12,10 @@ import dev.arcp.messages.Pong import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain -import kotlinx.datetime.Instant import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.jsonObject import kotlinx.serialization.json.jsonPrimitive +import kotlin.time.Instant class EnvelopeRoundTripTest : StringSpec({ diff --git a/lib/src/test/kotlin/dev/arcp/error/ARCPExceptionTest.kt b/lib/src/test/kotlin/dev/arcp/error/ARCPExceptionTest.kt index 22e7fc1..51b3bf6 100644 --- a/lib/src/test/kotlin/dev/arcp/error/ARCPExceptionTest.kt +++ b/lib/src/test/kotlin/dev/arcp/error/ARCPExceptionTest.kt @@ -6,7 +6,7 @@ import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldContain import io.kotest.matchers.types.shouldBeInstanceOf -import kotlinx.datetime.Instant +import kotlin.time.Instant class ARCPExceptionTest : StringSpec({ diff --git a/lib/src/test/kotlin/dev/arcp/messages/MessageCatalogTest.kt b/lib/src/test/kotlin/dev/arcp/messages/MessageCatalogTest.kt index 03e2a1b..c23dfa8 100644 --- a/lib/src/test/kotlin/dev/arcp/messages/MessageCatalogTest.kt +++ b/lib/src/test/kotlin/dev/arcp/messages/MessageCatalogTest.kt @@ -19,10 +19,10 @@ import dev.arcp.ids.ToolName import dev.arcp.json.arcpJson import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe -import kotlinx.datetime.Instant import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonPrimitive import kotlinx.serialization.json.buildJsonObject +import kotlin.time.Instant class MessageCatalogTest : StringSpec({ diff --git a/lib/src/test/kotlin/dev/arcp/runtime/ArtifactStoreTest.kt b/lib/src/test/kotlin/dev/arcp/runtime/ArtifactStoreTest.kt index 019e9fe..a4f2605 100644 --- a/lib/src/test/kotlin/dev/arcp/runtime/ArtifactStoreTest.kt +++ b/lib/src/test/kotlin/dev/arcp/runtime/ArtifactStoreTest.kt @@ -8,10 +8,10 @@ import io.kotest.core.spec.style.StringSpec import io.kotest.matchers.shouldBe import io.kotest.matchers.string.shouldStartWith import kotlinx.coroutines.test.runTest -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.minutes +import kotlin.time.Instant private fun req( id: String, diff --git a/lib/src/test/kotlin/dev/arcp/runtime/ListJobsHandlerTest.kt b/lib/src/test/kotlin/dev/arcp/runtime/ListJobsHandlerTest.kt index bf73762..723e071 100644 --- a/lib/src/test/kotlin/dev/arcp/runtime/ListJobsHandlerTest.kt +++ b/lib/src/test/kotlin/dev/arcp/runtime/ListJobsHandlerTest.kt @@ -11,7 +11,7 @@ import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.nulls.shouldNotBeNull import io.kotest.matchers.shouldBe import kotlinx.coroutines.test.runTest -import kotlinx.datetime.Instant +import kotlin.time.Instant class ListJobsHandlerTest : StringSpec({ diff --git a/lib/src/test/kotlin/dev/arcp/runtime/SubscriptionManagerTest.kt b/lib/src/test/kotlin/dev/arcp/runtime/SubscriptionManagerTest.kt index 5befc6d..b5756f3 100644 --- a/lib/src/test/kotlin/dev/arcp/runtime/SubscriptionManagerTest.kt +++ b/lib/src/test/kotlin/dev/arcp/runtime/SubscriptionManagerTest.kt @@ -24,7 +24,7 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runTest import kotlinx.coroutines.yield -import kotlinx.datetime.Instant +import kotlin.time.Instant @OptIn(ExperimentalCoroutinesApi::class) class SubscriptionManagerTest : diff --git a/lib/src/test/kotlin/dev/arcp/store/EventLogTest.kt b/lib/src/test/kotlin/dev/arcp/store/EventLogTest.kt index 81e060e..5b05920 100644 --- a/lib/src/test/kotlin/dev/arcp/store/EventLogTest.kt +++ b/lib/src/test/kotlin/dev/arcp/store/EventLogTest.kt @@ -17,11 +17,11 @@ import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import kotlinx.coroutines.test.runTest import kotlinx.coroutines.withTimeout -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant import kotlinx.serialization.json.JsonPrimitive +import kotlin.time.Clock import kotlin.time.Duration.Companion.hours import kotlin.time.Duration.Companion.seconds +import kotlin.time.Instant class EventLogTest : StringSpec({ diff --git a/recipes/stream-resume/Server.kt b/recipes/stream-resume/Server.kt index 1a2b66e..bb76ba8 100644 --- a/recipes/stream-resume/Server.kt +++ b/recipes/stream-resume/Server.kt @@ -18,7 +18,7 @@ import dev.arcp.messages.SessionOpen import dev.arcp.messages.JobSubmit import dev.arcp.transport.Transport import kotlinx.coroutines.flow.collect -import kotlinx.datetime.Clock +import kotlin.time.Clock import kotlin.time.Duration.Companion.hours // --------------------------------------------------------------------------- diff --git a/samples/src/main/kotlin/com/arcp/samples/heartbeats/Main.kt b/samples/src/main/kotlin/com/arcp/samples/heartbeats/Main.kt index 056ed1c..e9da4b7 100644 --- a/samples/src/main/kotlin/com/arcp/samples/heartbeats/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/heartbeats/Main.kt @@ -18,8 +18,8 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock +import kotlin.time.Instant /** Supervisor + worker pool. Heartbeat loss reroutes via idempotency_key. */ diff --git a/samples/src/main/kotlin/com/arcp/samples/leaseexpiresat/Main.kt b/samples/src/main/kotlin/com/arcp/samples/leaseexpiresat/Main.kt index 996bc77..3903904 100644 --- a/samples/src/main/kotlin/com/arcp/samples/leaseexpiresat/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/leaseexpiresat/Main.kt @@ -14,8 +14,8 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock +import kotlin.time.Instant /** * Demonstrates lease TTL tracking and proactive refresh before expiry (RFC §9.4). diff --git a/samples/src/main/kotlin/com/arcp/samples/leaserevocation/Main.kt b/samples/src/main/kotlin/com/arcp/samples/leaserevocation/Main.kt index 0e70a00..269b931 100644 --- a/samples/src/main/kotlin/com/arcp/samples/leaserevocation/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/leaserevocation/Main.kt @@ -13,8 +13,8 @@ import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import kotlinx.datetime.Clock -import kotlinx.datetime.Instant +import kotlin.time.Clock +import kotlin.time.Instant /** Warehouse DB admin agent. Reads pre-granted; writes prompt operator. */ diff --git a/samples/src/main/kotlin/com/arcp/samples/leaseviolation/Main.kt b/samples/src/main/kotlin/com/arcp/samples/leaseviolation/Main.kt index 0515b10..dc39005 100644 --- a/samples/src/main/kotlin/com/arcp/samples/leaseviolation/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/leaseviolation/Main.kt @@ -9,7 +9,7 @@ import dev.arcp.ids.LeaseId import dev.arcp.ids.PermissionName import dev.arcp.lease.ModelUseLease import kotlinx.coroutines.runBlocking -import kotlinx.datetime.Clock +import kotlin.time.Clock /** * Demonstrates three categories of lease violation (RFC §9.5): diff --git a/samples/src/main/kotlin/com/arcp/samples/listjobs/Main.kt b/samples/src/main/kotlin/com/arcp/samples/listjobs/Main.kt index 78229b6..c370ffd 100644 --- a/samples/src/main/kotlin/com/arcp/samples/listjobs/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/listjobs/Main.kt @@ -6,7 +6,7 @@ import dev.arcp.messages.JobListEntry import dev.arcp.messages.JobListFilter import dev.arcp.runtime.InMemoryJobInventory import kotlinx.coroutines.runBlocking -import kotlinx.datetime.Clock +import kotlin.time.Clock public fun main(): Unit = runBlocking { val inventory = InMemoryJobInventory() diff --git a/samples/src/main/kotlin/com/arcp/samples/tracing/Main.kt b/samples/src/main/kotlin/com/arcp/samples/tracing/Main.kt index 4450747..fd70bce 100644 --- a/samples/src/main/kotlin/com/arcp/samples/tracing/Main.kt +++ b/samples/src/main/kotlin/com/arcp/samples/tracing/Main.kt @@ -11,7 +11,7 @@ import dev.arcp.trace.currentTrace import dev.arcp.trace.withSpan import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext -import kotlinx.datetime.Clock +import kotlin.time.Clock import kotlinx.serialization.json.buildJsonObject import kotlinx.serialization.json.put