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:
@@ -344,9 +344,12 @@ fun main() {
|
||||
),
|
||||
)
|
||||
|
||||
val observationStore = InfrastructureModule.createObservationStore()
|
||||
val wsToolRegistryProvider = WorkspaceToolRegistryProvider { workspace ->
|
||||
val wsRegistry = InfrastructureModule.createToolRegistry(
|
||||
buildToolConfigForWorkspace(workspace, shellAllowedExecutables, toolsConfig, researchToolConfig),
|
||||
buildToolConfigForWorkspace(
|
||||
workspace, shellAllowedExecutables, toolsConfig, researchToolConfig, observationStore,
|
||||
),
|
||||
extraTools = extraTools,
|
||||
)
|
||||
val wsExecutor = DispatchingToolExecutor(wsRegistry)
|
||||
@@ -390,7 +393,6 @@ fun main() {
|
||||
semanticReviewer = SemanticReviewerImpl(inferenceRouter),
|
||||
)
|
||||
val decisionJournalRepository = InfrastructureModule.createDecisionJournalRepository(eventStore)
|
||||
val observationStore = InfrastructureModule.createObservationStore()
|
||||
val defaultOrchestrationConfig = OrchestrationConfig(
|
||||
sandboxRoot = sandboxRoot,
|
||||
defaultSystemPromptPath = toolsConfig.defaultSystemPromptPath,
|
||||
@@ -963,6 +965,7 @@ private fun buildToolConfigForWorkspace(
|
||||
shellAllowedExecutables: Set<String>,
|
||||
toolsConfig: com.correx.core.config.ToolsConfig,
|
||||
research: com.correx.infrastructure.tools.ResearchToolConfig,
|
||||
observationStore: com.correx.core.context.observation.ObservationStore? = null,
|
||||
): ToolConfig = ToolConfig(
|
||||
research = research,
|
||||
shell = ShellConfig(
|
||||
@@ -974,6 +977,8 @@ private fun buildToolConfigForWorkspace(
|
||||
enabled = toolsConfig.fileReadEnabled,
|
||||
allowedPaths = workspace.allowedPaths,
|
||||
workingDir = workspace.workingDir,
|
||||
observationStore = observationStore,
|
||||
repoRoot = workspace.workingDir?.toString(),
|
||||
),
|
||||
fileWrite = FileWriteConfig(
|
||||
enabled = toolsConfig.fileWriteEnabled,
|
||||
|
||||
Reference in New Issue
Block a user