diff --git a/gradle.properties b/gradle.properties index 5d0917cf7..1e81dc2e7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ pluginName=Cognotik pluginRepositoryUrl=https://github.com/SimiaCryptus/Cognotik libraryGroup=com.simiacryptus -libraryVersion=2.0.17 +libraryVersion=2.0.18 gradleVersion=8.13 org.gradle.caching=true diff --git a/intellij/src/main/kotlin/com/simiacryptus/cognotik/config/UsageTable.kt b/intellij/src/main/kotlin/com/simiacryptus/cognotik/config/UsageTable.kt index bd93a9179..a2ca69bf6 100644 --- a/intellij/src/main/kotlin/com/simiacryptus/cognotik/config/UsageTable.kt +++ b/intellij/src/main/kotlin/com/simiacryptus/cognotik/config/UsageTable.kt @@ -170,7 +170,7 @@ private val clearButton by lazy { val totalTokens = rowData.dropLast(1).sumOf { (it[1].toIntOrNull() ?: 0) + (it[2].toIntOrNull() ?: 0) } - if (totalTokens >= 10000) { + if (totalTokens >= 1000000) { settings.feedbackRequested = true showFeedbackNotification() } diff --git a/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/reasoning/NarrativeGenerationTask.kt b/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/reasoning/NarrativeGenerationTask.kt index 4733e577c..1e9bd453c 100644 --- a/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/reasoning/NarrativeGenerationTask.kt +++ b/webui/src/main/kotlin/com/simiacryptus/cognotik/plan/tools/reasoning/NarrativeGenerationTask.kt @@ -108,9 +108,9 @@ class NarrativeGenerationTask( data class ActOutline( val act_number: Int = 1, - val title: String = "", - val purpose: String = "", - val scenes: List = emptyList() + val title: String? = "", + val purpose: String? = "", + val scenes: List? = emptyList() ) data class SceneOutline( @@ -283,7 +283,7 @@ Ensure the outline: ) val outline = outlineAgent.answer(listOf("Generate outline")).obj - log.info("Generated outline: ${outline.acts.size} acts, ${outline.acts.sumOf { it.scenes.size }} scenes") + log.info("Generated outline: ${outline.acts.size} acts, ${outline.acts.sumOf { it.scenes?.size ?: 0 }} scenes") val outlineContent = buildString { appendLine("## ${outline.title}") @@ -299,7 +299,7 @@ Ensure the outline: appendLine() appendLine("**Purpose:** ${act.purpose}") appendLine() - act.scenes.forEach { scene -> + act.scenes?.forEach { scene -> appendLine("#### Scene ${scene.scene_number}: ${scene.title}") appendLine() appendLine("- **Setting:** ${scene.setting}") @@ -326,20 +326,20 @@ Ensure the outline: resultBuilder.append("${outline.premise}\n\n") resultBuilder.append("---\n\n") - overviewTask.add("✅ Phase 2 Complete: Outline created (${outline.acts.sumOf { it.scenes.size }} scenes)\n".renderMarkdown) + overviewTask.add("✅ Phase 2 Complete: Outline created (${outline.acts.sumOf { it.scenes?.size ?: 0 }} scenes)\n".renderMarkdown) overviewTask.add("\n### Phase 3: Scene Generation\n*Writing scenes iteratively with context...*\n".renderMarkdown) task.update() // Phase 3: Generate each scene iteratively log.info("Phase 3: Generating scenes") - val allScenes = outline.acts.flatMap { it.scenes } + val allScenes = outline.acts.flatMap { it.scenes ?: emptyList() } ?: emptyList() val generatedScenes = mutableListOf() var cumulativeWordCount = 0 allScenes.forEachIndexed { index, sceneOutline -> - log.info("Generating scene ${index + 1}/${allScenes.size}: ${sceneOutline.title}") + log.info("Generating scene ${index + 1}/${allScenes.size}: ${sceneOutline?.title}") - overviewTask.add("- Scene ${sceneOutline.scene_number}: ${sceneOutline.title} ".renderMarkdown) + overviewTask.add("- Scene ${sceneOutline?.scene_number}: ${sceneOutline?.title} ".renderMarkdown) task.update() val sceneTask = task.ui.newTask(false) @@ -541,7 +541,7 @@ Provide the revised scene content only. appendLine() val actScenes = generatedScenes.filter { scene -> - act.scenes.any { it.scene_number == scene.scene_number } + act.scenes?.any { it.scene_number == scene.scene_number } == true } actScenes.forEach { scene ->