Pure Kotlin/JVM, faithful to the schema contract: two-clock (wall RFC3339 + *_mono_ns), units in field names, observation/interpretation split (tests[] vs findings[]), columnar train evidence (nulls preserved per index), the full v1 test-type registry, the anonymization logical types as field notes, and a finding-requires-evidence invariant. The one piece with real logic — §7.3 deterministic verdict derivation (category = worst finding light; >50% failed/unsupported → inconclusive; overall = worst category, inconclusive only if all are) — is implemented in Verdicts and fully unit-tested. Document JSON round-trips (snake_case wire names, null-in-columns), typed builders for train/traceroute/resolver evidence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
26 lines
669 B
Kotlin
26 lines
669 B
Kotlin
// SPDX-FileCopyrightText: 2026 Echolot contributors
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
pluginManagement {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
dependencyResolutionManagement {
|
|
repositories {
|
|
google()
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
rootProject.name = "echolot-app"
|
|
|
|
// core-protocol is a pure Kotlin/JVM module (the client side of
|
|
// probe-protocol.md) so it builds and unit-tests without the Android SDK and
|
|
// can run integration tests against a live server. Android modules
|
|
// (core-probe, core-shizuku, app) join as they land.
|
|
include(":core-protocol")
|
|
include(":core-measurement")
|