545068d222
Implements the full vertical slice for invariant #9 tool-call assessment: - core:toolintent — new module with ToolCallRule seam, ToolCallAssessor, WorldProbe/FileSystemWorldProbe, WorkspacePolicy, PathContainmentRule, and RiskMapping (assessment → RiskSummary / AssessedIssue) - core:tools — ToolCallAssessmentRecord + ToolInvocationRecord.assessment field; DefaultToolReducer handles ToolCallAssessedEvent (replay proof) - core:config — ToolsConfig gains workspaceRoot + privilegedLocations; ConfigLoader parses both; DEFAULT_PRIVILEGED_LOCATIONS built-in - core:kernel — OrchestratorEngines gains toolCallAssessor/workspacePolicy/ worldProbe fields; SessionOrchestrator.dispatchToolCalls runs runPlane2Assessment before the tier gate: BLOCK → hard-reject without executing; PROMPT_USER → elevates tier into approval path with plane2Risk in the ApprovalRequestedEvent - apps/server — constructs PathContainmentRule + ToolCallAssessor + WorkspacePolicy from config and wires them into OrchestratorEngines Assessment is recorded as ToolCallAssessedEvent (environment observed once, facts stored, replay reads events — invariant #9). Assessor and WorldProbe are only invoked on the live orchestrator path, never in replay.
64 lines
2.5 KiB
Groovy
64 lines
2.5 KiB
Groovy
plugins {
|
|
id 'org.jetbrains.kotlin.jvm'
|
|
id 'org.jetbrains.kotlin.plugin.serialization'
|
|
id 'application'
|
|
}
|
|
|
|
application {
|
|
mainClass = 'com.correx.apps.server.MainKt'
|
|
}
|
|
|
|
tasks.named('distTar') {
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
tasks.named('distZip') {
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':core:config')
|
|
implementation project(':core:events')
|
|
implementation project(':core:approvals')
|
|
implementation project(':core:sessions')
|
|
implementation project(':core:kernel')
|
|
implementation project(':core:inference')
|
|
implementation project(':core:transitions')
|
|
implementation project(':core:context')
|
|
implementation project(':core:validation')
|
|
implementation project(':core:risk')
|
|
implementation project(':core:artifacts')
|
|
implementation project(':core:artifacts-store')
|
|
implementation project(':infrastructure')
|
|
implementation project(':infrastructure:artifacts-cas')
|
|
implementation project(':infrastructure:workflow')
|
|
implementation project(':infrastructure:persistence')
|
|
implementation project(':infrastructure:inference')
|
|
implementation project(':infrastructure:inference:llama_cpp')
|
|
implementation project(':infrastructure:inference:commons')
|
|
implementation project(':core:router')
|
|
implementation project(':core:tools')
|
|
implementation project(':core:toolintent')
|
|
implementation project(':infrastructure:tools')
|
|
implementation project(':infrastructure:tools:filesystem')
|
|
|
|
implementation "com.github.ajalt.clikt:clikt:5.0.1"
|
|
|
|
implementation "io.ktor:ktor-client-cio:$ktor_version"
|
|
implementation "io.ktor:ktor-client-logging:$ktor_version"
|
|
implementation "io.ktor:ktor-server-core:$ktor_version"
|
|
implementation "io.ktor:ktor-server-netty:$ktor_version"
|
|
implementation "io.ktor:ktor-server-websockets:$ktor_version"
|
|
implementation "io.ktor:ktor-server-content-negotiation:$ktor_version"
|
|
implementation "io.ktor:ktor-serialization-kotlinx-json:$ktor_version"
|
|
implementation "io.ktor:ktor-server-status-pages:$ktor_version"
|
|
implementation "io.ktor:ktor-server-call-logging:$ktor_version"
|
|
|
|
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinx_coroutines_version"
|
|
|
|
implementation "org.apache.logging.log4j:log4j-core:2.24.1"
|
|
implementation "org.apache.logging.log4j:log4j-slf4j2-impl:2.24.1"
|
|
implementation "org.slf4j:slf4j-api:2.0.16"
|
|
}
|
|
|
|
tasks.named("koverVerify").configure { enabled = false }
|