feat(acr): Store 2 soft-confidence hints + Store 1 FileReadTool priming (#305)
Store 2 (Fixes): ConceptCompilerProjection already tracked the unconfirmed(validatedFixes>=1)/falsified(contradicted)/confirmed(promoted) lifecycle as data, but only confirmed (>=threshold) clusters were ever delivered. unconfirmedFixEntries reactively matches the CURRENT retry's classKey against that state and injects a soft one-shot hint (below threshold) or steer-away (contradicted) before hard promotion — wired into stage context build in SessionOrchestratorExecution.kt. Store 3 (Plan-shapes): already shipped as SessionOrchestratorPlanPatterns.kt (deterministic keyword-Jaccard over eventStore.allEvents(), no embedder needed) — confirmed complete, no new code required. FileReadTool hot-path extension to Store 1: a whole-file read now primes the cross-session ObservationStore (when wired) the same way the write path already does, so a later describeCached lookup for the same content hash is warm even if the file was only read, not written, this session.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.correx.infrastructure.tools
|
||||
|
||||
import com.correx.core.context.observation.ObservationStore
|
||||
import com.correx.core.tools.contract.Tool
|
||||
import com.correx.infrastructure.tools.filesystem.FileDeleteTool
|
||||
import com.correx.infrastructure.tools.filesystem.FileEditTool
|
||||
@@ -39,6 +40,9 @@ data class FileReadConfig(
|
||||
val enabled: Boolean = false,
|
||||
val allowedPaths: Set<Path> = emptySet(),
|
||||
val workingDir: Path? = null,
|
||||
// ACR Store 1 hot-path priming (docs/plans/2026-07-21-acr-knowledge-accretion.md); both null is a no-op.
|
||||
val observationStore: ObservationStore? = null,
|
||||
val repoRoot: String? = null,
|
||||
)
|
||||
data class FileWriteConfig(
|
||||
val enabled: Boolean = false,
|
||||
@@ -75,6 +79,8 @@ fun ToolConfig.buildTools(): List<Tool> = buildList {
|
||||
FileReadTool(
|
||||
allowedPaths = fileRead.allowedPaths,
|
||||
workingDir = fileRead.workingDir,
|
||||
observationStore = fileRead.observationStore,
|
||||
repoRoot = fileRead.repoRoot,
|
||||
),
|
||||
)
|
||||
// list_dir is read-only enumeration; shares the reader's jail + anchor and the same toggle.
|
||||
|
||||
Reference in New Issue
Block a user