From 7cb31a52d7db8c80697a43854fdcffaa079b9a6f Mon Sep 17 00:00:00 2001 From: Thorsten Weiskopf Date: Mon, 16 Feb 2026 11:42:29 +0100 Subject: [PATCH] added parsing of executionLimit from usecasedescripntion and usage within UscaseLoading --- .../main/kotlin/usecases/UseCaseIdExtractor.kt | 6 ++++-- .../kotlin/usecases/UseCaseIdExtractorTest.kt | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/arc-assistants/src/main/kotlin/usecases/UseCaseIdExtractor.kt b/arc-assistants/src/main/kotlin/usecases/UseCaseIdExtractor.kt index 528c93b4..d5dc925c 100644 --- a/arc-assistants/src/main/kotlin/usecases/UseCaseIdExtractor.kt +++ b/arc-assistants/src/main/kotlin/usecases/UseCaseIdExtractor.kt @@ -8,13 +8,15 @@ typealias UseCaseId = String /** * Extract the use case id from the assistant message. - * For example, "" + * For example, " "" */ private val useCaseIdRegex = "".toRegex(RegexOption.IGNORE_CASE) +private val useCaseIdRegex_alt = "".toRegex(RegexOption.IGNORE_CASE) fun extractUseCaseId(message: String): Pair { val id = useCaseIdRegex.find(message)?.groupValues?.elementAtOrNull(1)?.trim() - val cleanedMessage = message.replace(useCaseIdRegex, "").trim() + ?: useCaseIdRegex_alt.find(message)?.groupValues?.elementAtOrNull(1)?.trim() + val cleanedMessage = message.replace(useCaseIdRegex, "").replace(useCaseIdRegex_alt, "").trim() return cleanedMessage to id } diff --git a/arc-assistants/src/test/kotlin/usecases/UseCaseIdExtractorTest.kt b/arc-assistants/src/test/kotlin/usecases/UseCaseIdExtractorTest.kt index c939b948..55df3f9f 100644 --- a/arc-assistants/src/test/kotlin/usecases/UseCaseIdExtractorTest.kt +++ b/arc-assistants/src/test/kotlin/usecases/UseCaseIdExtractorTest.kt @@ -75,4 +75,21 @@ class UseCaseIdExtractorTest { assertThat(filteredMessage).contains("This is a reply from the LLM with ") assertThat(useCaseId).isEqualTo("use_case01") } + + @Test + fun `test usecase variant extraction`(): Unit = runBlocking { + val variants = listOf( + " Message.", + " Message.", + " Message.", + " Message.", + " Message.", + " Message." + ) + for (msg in variants) { + val (filteredMessage, useCaseId) = extractUseCaseId(msg) + assertThat(filteredMessage).contains("Message.") + assertThat(useCaseId).isEqualTo("abc123") + } + } }