@dvai-bridge/android-shared-core 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +51 -0
- package/README.md +199 -0
- package/android/.gradle/9.4.1/checksums/checksums.lock +0 -0
- package/android/.gradle/9.4.1/checksums/md5-checksums.bin +0 -0
- package/android/.gradle/9.4.1/checksums/sha1-checksums.bin +0 -0
- package/android/.gradle/9.4.1/checksums/sha256-checksums.bin +0 -0
- package/android/.gradle/9.4.1/checksums/sha512-checksums.bin +0 -0
- package/android/.gradle/9.4.1/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/9.4.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/9.4.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.4.1/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.4.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.4.1/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/9.4.1/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/file-system.probe +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/release/processReleaseManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
- package/android/build/intermediates/aar_main_jar/release/syncReleaseLibJars/classes.jar +0 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/aar_metadata/release/writeReleaseAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/android_res_source_set_path_map/debug/mapDebugSourceSetPaths/file-map.txt +9 -0
- package/android/build/intermediates/android_res_source_set_path_map/debugUnitTest/mapDebugUnitTestSourceSetPaths/file-map.txt +4 -0
- package/android/build/intermediates/android_res_source_set_path_map/release/mapReleaseSourceSetPaths/file-map.txt +9 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotation_processor_list/debugUnitTest/javaPreCompileDebugUnitTest/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotation_processor_list/release/javaPreCompileRelease/annotationProcessors.json +1 -0
- package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/annotations_typedef_file/release/extractReleaseAnnotations/typedefs.txt +0 -0
- package/android/build/intermediates/apk_for_local_test/debugUnitTest/packageDebugUnitTestForUnitTest/apk-for-local-test.ap_ +0 -0
- package/android/build/intermediates/assets/debugUnitTest/mergeDebugUnitTestAssets/PublicSuffixDatabase.list +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Allowlist.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Exact.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Wildcard.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/DvaiHandlers.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerContext.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$2.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$3.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$4.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$5.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$6$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$respondWithHandlerResponse$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$respondWithHandlerResponse$2.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Error.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Json.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Sse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer$startWithRoutes$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer$tryBind$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCacheKey.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/ScoreSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/ScoreSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$Error.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$PeerDown.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$PeerUp.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser$start$l$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$NsdAttrs.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$resolve$cb$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$start$l$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerKt.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerTxtKeys.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/offload/OffloadConfig.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingDeniedException.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingHandshake.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy$approveOrFetch$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy$approveOrFetch$approved$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingRequest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debug/compileDebugKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest$FakeHandlers.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest$GET v1 models returns canned$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest$OPTIONS preflight returns 204 with PNA header$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest$unknown path returns 404$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest$bind base port when free$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest$falls back to next port on conflict$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest$stop is idempotent$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest$tearDown$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest$throws actionable error when all ports blocked$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServerTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCacheTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/offload/OffloadConfigTest$onPairingRequest callback stays attached after copy$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/offload/OffloadConfigTest$onPairingRequest callback stays attached after copy$cb$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/offload/OffloadConfigTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingHandshakeTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest$policy approves when UI says yes$1$collector$1$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest$policy approves when UI says yes$1$collector$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest$policy approves when UI says yes$1.class +0 -0
- timeout elapses$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest$policy reuses active pairing without re-prompting$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/debugUnitTest/compileDebugUnitTestKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Allowlist.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Exact.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig$Wildcard.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/CorsConfig.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/DvaiHandlers.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerContext.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$2.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$3.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$4.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$5.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$installDispatchRoutes$6$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$respondWithHandlerResponse$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt$respondWithHandlerResponse$2.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerDispatchKt.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Error.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Json.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse$Sse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HandlerResponse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer$startWithRoutes$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer$tryBind$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/HttpServer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache$Persisted.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityCacheKey.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck$Result$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck$Result$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck$Result.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck$Thresholds.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck$WhenMappings.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityPrecheck.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CpuClass$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/CpuClass.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceCapabilityHints$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceCapabilityHints$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceCapabilityHints.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID$DeviceFile.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/DeviceID.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/GpuClass$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/GpuClass.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/PrecheckMode$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/PrecheckMode.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/ScoreSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/capability/ScoreSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$Error.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$PeerDown.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent$PeerUp.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/DiscoveryEvent.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser$start$l$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$NsdAttrs.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$resolve$cb$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery$start$l$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/Peer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerKt.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/discovery/PeerTxtKeys.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/offload/OffloadConfig.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeRequest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/HandshakeResponse.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/Pairing.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingDeniedException.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingHandshake.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy$approveOrFetch$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy$approveOrFetch$approved$1.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingRequest.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingSource$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingSource.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted$$serializer.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted$Companion.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore$Persisted.class +0 -0
- package/android/build/intermediates/built_in_kotlinc/release/compileReleaseKotlin/classes/co/deepvoiceai/bridge/shared/core/pairing/PairingStore.class +0 -0
- package/android/build/intermediates/compile_and_runtime_r_class_jar/debugUnitTest/processDebugUnitTestResources/R.jar +0 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/release/generateReleaseRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
- package/android/build/intermediates/compile_symbol_list/release/generateReleaseRFile/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/merged.dir/values/values.xml +18 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/merged.dir/values-v18/values-v18.xml +19 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/merged.dir/values-v21/values-v21.xml +21 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/merged.dir/values-v28/values-v28.xml +21 -0
- package/android/build/intermediates/incremental/debugUnitTest/mergeDebugUnitTestResources/merger.xml +60 -0
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugUnitTestAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/release/mergeReleaseResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/release/mergeReleaseResources/merged.dir/values/values.xml +4 -0
- package/android/build/intermediates/incremental/release/mergeReleaseResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/release/packageReleaseResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/release-mergeJavaRes/merge-state +0 -0
- package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/java_res/debugUnitTest/processDebugUnitTestJavaRes/out/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/java_res/release/processReleaseJavaRes/out/META-INF/dvai-bridge-android-shared-core.kotlin_module +0 -0
- package/android/build/intermediates/linked_resources_binary_format/debugUnitTest/processDebugUnitTestResources/linked-resources-binary-format.ap_ +0 -0
- package/android/build/intermediates/linked_resources_binary_format/debugUnitTest/processDebugUnitTestResources/output-metadata.json +20 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/local_only_symbol_list/release/parseReleaseLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +9 -0
- package/android/build/intermediates/manifest_merge_blame_file/debugUnitTest/processDebugUnitTestManifest/manifest-merger-blame-debug-test-report.txt +97 -0
- package/android/build/intermediates/manifest_merge_blame_file/release/processReleaseManifest/manifest-merger-blame-release-report.txt +9 -0
- package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-.jar +0 -0
- package/android/build/intermediates/merged_java_res/release/mergeReleaseJavaResource/feature-.jar +0 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/merged_manifest/release/processReleaseManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/merged_res/debugUnitTest/mergeDebugUnitTestResources/values-v18_values-v18.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugUnitTest/mergeDebugUnitTestResources/values-v21_values-v21.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugUnitTest/mergeDebugUnitTestResources/values-v28_values-v28.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/debugUnitTest/mergeDebugUnitTestResources/values_values.arsc.flat +0 -0
- package/android/build/intermediates/merged_res/release/mergeReleaseResources/values/values.xml +4 -0
- package/android/build/intermediates/merged_res_blame_folder/debugUnitTest/mergeDebugUnitTestResources/out/multi-v2/mergeDebugUnitTestResources.json +110 -0
- package/android/build/intermediates/merged_res_blame_folder/debugUnitTest/mergeDebugUnitTestResources/out/multi-v2/values-v18.json +28 -0
- package/android/build/intermediates/merged_res_blame_folder/debugUnitTest/mergeDebugUnitTestResources/out/multi-v2/values-v21.json +28 -0
- package/android/build/intermediates/merged_res_blame_folder/debugUnitTest/mergeDebugUnitTestResources/out/multi-v2/values-v28.json +28 -0
- package/android/build/intermediates/merged_res_blame_folder/debugUnitTest/mergeDebugUnitTestResources/out/multi-v2/values.json +38 -0
- package/android/build/intermediates/merged_res_blame_folder/release/mergeReleaseResources/out/multi-v2/values.json +34 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debugUnitTest/generateDebugUnitTestResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/nested_resources_validation_report/release/generateReleaseResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/packaged_manifests/debugUnitTest/processDebugUnitTestManifest/AndroidManifest.xml +53 -0
- package/android/build/intermediates/packaged_manifests/debugUnitTest/processDebugUnitTestManifest/output-metadata.json +18 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/runtime_symbol_list/debugUnitTest/processDebugUnitTestResources/R.txt +3 -0
- package/android/build/intermediates/source_jar/release/release-sources.jar +0 -0
- package/android/build/intermediates/stable_resource_ids_file/debugUnitTest/processDebugUnitTestResources/stableIds.txt +3 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
- package/android/build/intermediates/symbol_list_with_package_name/release/generateReleaseRFile/package-aware-r.txt +1 -0
- package/android/build/intermediates/unit_test_config_directory/debugUnitTest/generateDebugUnitTestConfig/out/com/android/tools/test_config.properties +5 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.HandlerDispatchTest.xml +12 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.HttpServerTest.xml +82 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.capability.CapabilityCacheTest.xml +15 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.discovery.PeerTest.xml +15 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.offload.OffloadConfigTest.xml +11 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.pairing.PairingHandshakeTest.xml +15 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.pairing.PairingStoreAndPolicyTest.xml +13 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/binary/output-events.bin +0 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/binary/results-generic.bin +0 -0
- package/android/build/intermediates/unit_test_results/debug/testDebugUnitTest/metadata.txt +4 -0
- package/android/build/intermediates/verified_library_resources/release/verifyReleaseResources/compiled/values_values.arsc.flat +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugUnitTestKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/outputs-generated-for-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/compilerPluginFiles/sources-referenced-by-plugins.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +1 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileReleaseKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileReleaseKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/outputs/aar/dvai-bridge-android-shared-core-debug.aar +0 -0
- package/android/build/outputs/aar/dvai-bridge-android-shared-core-release.aar +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +16 -0
- package/android/build/outputs/logs/manifest-merger-release-report.txt +16 -0
- package/android/build/publications/release/module.json +145 -0
- package/android/build/publications/release/pom-default.xml +58 -0
- package/android/build/reports/problems/problems-report.html +666 -0
- package/android/build/reports/tests/testDebugUnitTest/CEmI-wvg_b0/index.html +171 -0
- package/android/build/reports/tests/testDebugUnitTest/CjkPESSPCFg/index.html +189 -0
- package/android/build/reports/tests/testDebugUnitTest/Sr_3FYF3E64/IwYT37xmPR4.html +109 -0
- package/android/build/reports/tests/testDebugUnitTest/Sr_3FYF3E64/index.html +137 -0
- package/android/build/reports/tests/testDebugUnitTest/css/base-style.css +175 -0
- package/android/build/reports/tests/testDebugUnitTest/css/style.css +154 -0
- package/android/build/reports/tests/testDebugUnitTest/index.html +182 -0
- package/android/build/reports/tests/testDebugUnitTest/js/report.js +228 -0
- package/android/build/reports/tests/testDebugUnitTest/jusmsxdrZvQ/DOz075amE-4.html +160 -0
- package/android/build/reports/tests/testDebugUnitTest/jusmsxdrZvQ/DWSCvp4-vk8.html +124 -0
- package/android/build/reports/tests/testDebugUnitTest/jusmsxdrZvQ/index.html +148 -0
- package/android/build/reports/tests/testDebugUnitTest/peG3Rsp7hHI/index.html +189 -0
- package/android/build/reports/tests/testDebugUnitTest/rz2aVP3CY48/index.html +189 -0
- package/android/build/reports/tests/testDebugUnitTest/ydf6hQjPqNk/index.html +153 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.HandlerDispatchTest.xml +12 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.HttpServerTest.xml +82 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.capability.CapabilityCacheTest.xml +15 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.discovery.PeerTest.xml +15 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.offload.OffloadConfigTest.xml +11 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.pairing.PairingHandshakeTest.xml +15 -0
- package/android/build/test-results/testDebugUnitTest/TEST-co.deepvoiceai.bridge.shared.core.pairing.PairingStoreAndPolicyTest.xml +13 -0
- package/android/build/test-results/testDebugUnitTest/binary/output-events.bin +0 -0
- package/android/build/test-results/testDebugUnitTest/binary/results-generic.bin +0 -0
- package/android/build/tmp/publishReleasePublicationToMavenLocal/module-maven-metadata.xml +17 -0
- package/android/build/tmp/sourceReleaseJar/MANIFEST.MF +2 -0
- package/android/build.gradle +139 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/android/gradle.properties +5 -0
- package/android/gradlew +249 -0
- package/android/gradlew.bat +92 -0
- package/android/settings.gradle +1 -0
- package/android/src/androidTest/java/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscoveryInstrumentedTest.kt +61 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/CorsConfig.kt +37 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/DvaiHandlers.kt +20 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/HandlerContext.kt +10 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/HandlerDispatch.kt +98 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/HandlerResponse.kt +11 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/HttpServer.kt +126 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/capability/CapabilityCache.kt +78 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/capability/CapabilityScore.kt +41 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/capability/DeviceID.kt +95 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/capability/Precheck.kt +180 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/discovery/NsdAdvertiser.kt +86 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/discovery/NsdDiscovery.kt +230 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/discovery/Peer.kt +138 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/offload/OffloadConfig.kt +42 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/pairing/Pairing.kt +58 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/pairing/PairingHandshake.kt +126 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/pairing/PairingPolicy.kt +145 -0
- package/android/src/main/java/co/deepvoiceai/bridge/shared/core/pairing/PairingStore.kt +76 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/HandlerDispatchTest.kt +74 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/HttpServerTest.kt +65 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/capability/CapabilityCacheTest.kt +107 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/discovery/PeerTest.kt +119 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/offload/OffloadConfigTest.kt +88 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/pairing/PairingHandshakeTest.kt +97 -0
- package/android/src/test/java/co/deepvoiceai/bridge/shared/core/pairing/PairingStoreAndPolicyTest.kt +127 -0
- package/package.json +16 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core.pairing
|
|
2
|
+
|
|
3
|
+
import kotlinx.serialization.Serializable
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Phase 3 — pairing types (Kotlin mirror of `Pairing` /
|
|
7
|
+
* `HandshakeRequest` / `HandshakeResponse` from
|
|
8
|
+
* `@dvai-bridge/core/src/pairing/types.ts`).
|
|
9
|
+
*
|
|
10
|
+
* A "pairing" is an authenticated trust relationship between two
|
|
11
|
+
* devices established once via the handshake flow, then reused for
|
|
12
|
+
* all subsequent offload requests via HMAC-signed headers.
|
|
13
|
+
*
|
|
14
|
+
* Pairings expire after [PairingPolicy] TTL (default 30 days) of
|
|
15
|
+
* inactivity.
|
|
16
|
+
*/
|
|
17
|
+
@Serializable
|
|
18
|
+
data class Pairing(
|
|
19
|
+
/** Stable per-install device ID of the peer. */
|
|
20
|
+
val peerDeviceId: String,
|
|
21
|
+
/** Friendly name for the user UI (revoke / re-pair). */
|
|
22
|
+
val peerDeviceName: String,
|
|
23
|
+
/** Shared 256-bit pairing key (base64-url encoded). Used for HMAC. */
|
|
24
|
+
val pairingKey: String,
|
|
25
|
+
/** When the pairing was first established. */
|
|
26
|
+
val pairedAt: Long,
|
|
27
|
+
/** Last time this pairing was used for an offload request. */
|
|
28
|
+
val lastUsedAt: Long,
|
|
29
|
+
/** Pairing source — informational. */
|
|
30
|
+
val via: PairingSource,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
@Serializable
|
|
34
|
+
enum class PairingSource {
|
|
35
|
+
@kotlinx.serialization.SerialName("lan-handshake")
|
|
36
|
+
LAN_HANDSHAKE,
|
|
37
|
+
@kotlinx.serialization.SerialName("rendezvous-qr")
|
|
38
|
+
RENDEZVOUS_QR,
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Serializable
|
|
42
|
+
data class HandshakeRequest(
|
|
43
|
+
val originDeviceId: String,
|
|
44
|
+
val originDeviceName: String,
|
|
45
|
+
val originVersion: String,
|
|
46
|
+
/** Initiator-side ephemeral nonce — included in the HMAC challenge. */
|
|
47
|
+
val nonce: String,
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
@Serializable
|
|
51
|
+
data class HandshakeResponse(
|
|
52
|
+
/** Approved? */
|
|
53
|
+
val approved: Boolean,
|
|
54
|
+
/** If approved, the shared pairing key (base64-url). */
|
|
55
|
+
val pairingKey: String? = null,
|
|
56
|
+
/** If denied, the reason for the diagnostic. */
|
|
57
|
+
val reason: String? = null,
|
|
58
|
+
)
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core.pairing
|
|
2
|
+
|
|
3
|
+
import java.security.MessageDigest
|
|
4
|
+
import java.security.SecureRandom
|
|
5
|
+
import javax.crypto.Mac
|
|
6
|
+
import javax.crypto.spec.SecretKeySpec
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* LAN-pairing handshake helpers (Kotlin mirror of
|
|
10
|
+
* `@dvai-bridge/core/src/pairing/handshake.ts`).
|
|
11
|
+
*
|
|
12
|
+
* The first time Device A wants to offload to Device B over the LAN,
|
|
13
|
+
* A POSTs `/v1/dvai/handshake` to B with its identity + a nonce. B
|
|
14
|
+
* surfaces a UI prompt to the user; on approve, B generates a 256-bit
|
|
15
|
+
* pairing key and returns it. From then on, A includes
|
|
16
|
+
* `X-DVAI-Pairing: HMAC-SHA256(pairingKey, body)` on every offload
|
|
17
|
+
* request to B.
|
|
18
|
+
*
|
|
19
|
+
* All keys + signatures use base64-url encoding, no padding.
|
|
20
|
+
*
|
|
21
|
+
* Implementation note: HMAC is via `javax.crypto.Mac` — we don't pull
|
|
22
|
+
* in BouncyCastle since AndroidKeyStore + the platform Mac provider
|
|
23
|
+
* already cover SHA-256 on every supported API level (24+).
|
|
24
|
+
*/
|
|
25
|
+
object PairingHandshake {
|
|
26
|
+
/** Generate a fresh 256-bit pairing key (base64-url encoded). */
|
|
27
|
+
fun generatePairingKey(): String {
|
|
28
|
+
val bytes = ByteArray(32)
|
|
29
|
+
SecureRandom().nextBytes(bytes)
|
|
30
|
+
return base64UrlEncode(bytes)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Generate a fresh 128-bit nonce for a handshake request. */
|
|
34
|
+
fun generateNonce(): String {
|
|
35
|
+
val bytes = ByteArray(16)
|
|
36
|
+
SecureRandom().nextBytes(bytes)
|
|
37
|
+
return base64UrlEncode(bytes)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* HMAC-SHA256(key, message). Used to sign offload requests so the
|
|
42
|
+
* peer can verify they came from a paired device.
|
|
43
|
+
*/
|
|
44
|
+
fun signHmac(pairingKey: String, message: String): String {
|
|
45
|
+
val keyBytes = decodeBase64UrlBytes(pairingKey)
|
|
46
|
+
val mac = Mac.getInstance("HmacSHA256")
|
|
47
|
+
mac.init(SecretKeySpec(keyBytes, "HmacSHA256"))
|
|
48
|
+
val sig = mac.doFinal(message.toByteArray(Charsets.UTF_8))
|
|
49
|
+
return base64UrlEncode(sig)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Verify an HMAC. Returns true on match (constant-time-ish). */
|
|
53
|
+
fun verifyHmac(pairingKey: String, message: String, signature: String): Boolean {
|
|
54
|
+
val expected = signHmac(pairingKey, message)
|
|
55
|
+
return constantTimeEquals(expected, signature)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Compose the canonical message that gets HMAC-signed for a
|
|
60
|
+
* peer-to-peer offload request. The peer recomputes the same
|
|
61
|
+
* string and verifies.
|
|
62
|
+
*
|
|
63
|
+
* Format: `${nonce}\n${method}\n${path}\n${bodyHash}` — bodyHash
|
|
64
|
+
* is the hex-encoded SHA-256 of the request body bytes (or 64
|
|
65
|
+
* zero-bytes for a missing body). Method is uppercased for
|
|
66
|
+
* canonicalization.
|
|
67
|
+
*/
|
|
68
|
+
fun composeSignedMessage(
|
|
69
|
+
nonce: String,
|
|
70
|
+
method: String,
|
|
71
|
+
path: String,
|
|
72
|
+
body: String?,
|
|
73
|
+
): String {
|
|
74
|
+
val bodyHash = if (body != null) sha256Hex(body) else "0".repeat(64)
|
|
75
|
+
return "$nonce\n${method.uppercase()}\n$path\n$bodyHash"
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
private fun sha256Hex(input: String): String {
|
|
79
|
+
val digest = MessageDigest.getInstance("SHA-256")
|
|
80
|
+
val bytes = digest.digest(input.toByteArray(Charsets.UTF_8))
|
|
81
|
+
val sb = StringBuilder(bytes.size * 2)
|
|
82
|
+
for (b in bytes) {
|
|
83
|
+
val v = b.toInt() and 0xff
|
|
84
|
+
sb.append(HEX[v shr 4]).append(HEX[v and 0x0f])
|
|
85
|
+
}
|
|
86
|
+
return sb.toString()
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private val HEX = "0123456789abcdef".toCharArray()
|
|
90
|
+
|
|
91
|
+
internal fun base64UrlEncode(bytes: ByteArray): String {
|
|
92
|
+
val sb = StringBuilder()
|
|
93
|
+
val b64 = java.util.Base64.getEncoder().encodeToString(bytes)
|
|
94
|
+
for (c in b64) {
|
|
95
|
+
when (c) {
|
|
96
|
+
'+' -> sb.append('-')
|
|
97
|
+
'/' -> sb.append('_')
|
|
98
|
+
'=' -> Unit
|
|
99
|
+
else -> sb.append(c)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return sb.toString()
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
internal fun decodeBase64UrlBytes(s: String): ByteArray {
|
|
106
|
+
val sb = StringBuilder(s.length + 4)
|
|
107
|
+
for (c in s) {
|
|
108
|
+
when (c) {
|
|
109
|
+
'-' -> sb.append('+')
|
|
110
|
+
'_' -> sb.append('/')
|
|
111
|
+
else -> sb.append(c)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
while (sb.length % 4 != 0) sb.append('=')
|
|
115
|
+
return java.util.Base64.getDecoder().decode(sb.toString())
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
private fun constantTimeEquals(a: String, b: String): Boolean {
|
|
119
|
+
if (a.length != b.length) return false
|
|
120
|
+
var diff = 0
|
|
121
|
+
for (i in a.indices) {
|
|
122
|
+
diff = diff or (a[i].code xor b[i].code)
|
|
123
|
+
}
|
|
124
|
+
return diff == 0
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core.pairing
|
|
2
|
+
|
|
3
|
+
import kotlinx.coroutines.CompletableDeferred
|
|
4
|
+
import kotlinx.coroutines.channels.BufferOverflow
|
|
5
|
+
import kotlinx.coroutines.flow.MutableSharedFlow
|
|
6
|
+
import kotlinx.coroutines.flow.SharedFlow
|
|
7
|
+
import kotlinx.coroutines.flow.asSharedFlow
|
|
8
|
+
import kotlinx.coroutines.withTimeoutOrNull
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A single pending pairing request surfaced to the host UI. Compose
|
|
12
|
+
* UIs collect these from [PairingPolicy.requests] and call either
|
|
13
|
+
* [respond] or — equivalently — fall through to the default-deny
|
|
14
|
+
* behaviour by ignoring the request until [PairingPolicy.approveOrFetch]
|
|
15
|
+
* times out.
|
|
16
|
+
*/
|
|
17
|
+
class PairingRequest internal constructor(
|
|
18
|
+
val peerDeviceId: String,
|
|
19
|
+
val peerDeviceName: String,
|
|
20
|
+
val via: PairingSource,
|
|
21
|
+
private val response: CompletableDeferred<Boolean>,
|
|
22
|
+
) {
|
|
23
|
+
/** Approve / deny. Idempotent — a second call is a no-op. */
|
|
24
|
+
fun respond(approved: Boolean) {
|
|
25
|
+
response.complete(approved)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** True once the host UI has decided. */
|
|
29
|
+
val isResolved: Boolean get() = response.isCompleted
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Pairing decision flow (Kotlin mirror of `PairingPolicy` from
|
|
34
|
+
* `@dvai-bridge/core/src/pairing/policy.ts`).
|
|
35
|
+
*
|
|
36
|
+
* Coordinates the host-app UI (via [requests] `SharedFlow`) with the
|
|
37
|
+
* persistent [PairingStore].
|
|
38
|
+
*
|
|
39
|
+
* Default behaviour with no UI subscriber: deny incoming pairings
|
|
40
|
+
* after [requestTimeoutMs]. That's the safe fallback — apps that
|
|
41
|
+
* haven't wired UI shouldn't accidentally accept random LAN devices.
|
|
42
|
+
*/
|
|
43
|
+
class PairingPolicy(
|
|
44
|
+
private val store: PairingStore,
|
|
45
|
+
/** Pairing TTL in days. Default 30. */
|
|
46
|
+
private val expireAfterDays: Int = 30,
|
|
47
|
+
/** Default-deny timeout when no UI subscriber answers. Default 60s. */
|
|
48
|
+
private val requestTimeoutMs: Long = 60_000L,
|
|
49
|
+
) {
|
|
50
|
+
// replay = 0 + buffer = 16: a request is dropped if no UI subscriber
|
|
51
|
+
// is listening + the buffer is full. We rely on the suspendable
|
|
52
|
+
// `approveOrFetch` to time out (default-deny) in that case rather
|
|
53
|
+
// than replaying — a late subscriber should NOT auto-approve a
|
|
54
|
+
// pairing request the user never saw a UI prompt for.
|
|
55
|
+
private val _requests = MutableSharedFlow<PairingRequest>(
|
|
56
|
+
replay = 0,
|
|
57
|
+
extraBufferCapacity = 16,
|
|
58
|
+
onBufferOverflow = BufferOverflow.DROP_OLDEST,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
/** Hot stream of incoming pairing requests for the host UI to collect. */
|
|
62
|
+
val requests: SharedFlow<PairingRequest> = _requests.asSharedFlow()
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Get an existing pairing, applying TTL expiry. Returns null if
|
|
66
|
+
* the pairing is missing or expired (auto-cleans expired entries).
|
|
67
|
+
*/
|
|
68
|
+
fun getActive(peerDeviceId: String): Pairing? {
|
|
69
|
+
val existing = store.get(peerDeviceId) ?: return null
|
|
70
|
+
val ttlMs = expireAfterDays.toLong() * 24L * 60L * 60L * 1000L
|
|
71
|
+
if (System.currentTimeMillis() - existing.lastUsedAt > ttlMs) {
|
|
72
|
+
store.remove(peerDeviceId)
|
|
73
|
+
return null
|
|
74
|
+
}
|
|
75
|
+
return existing
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Process an incoming pairing request. If we already have an
|
|
80
|
+
* active pairing for this peer, reuse it (and bump lastUsedAt).
|
|
81
|
+
* Otherwise emit a [PairingRequest] on [requests] and wait up to
|
|
82
|
+
* [requestTimeoutMs] for the UI to respond.
|
|
83
|
+
*
|
|
84
|
+
* Returns the resulting pairing on approval; throws
|
|
85
|
+
* [PairingDeniedException] otherwise.
|
|
86
|
+
*/
|
|
87
|
+
suspend fun approveOrFetch(
|
|
88
|
+
peerDeviceId: String,
|
|
89
|
+
peerDeviceName: String,
|
|
90
|
+
via: PairingSource,
|
|
91
|
+
): Pairing {
|
|
92
|
+
val existing = getActive(peerDeviceId)
|
|
93
|
+
if (existing != null) {
|
|
94
|
+
val touched = existing.copy(lastUsedAt = System.currentTimeMillis())
|
|
95
|
+
store.set(touched)
|
|
96
|
+
return touched
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
val deferred = CompletableDeferred<Boolean>()
|
|
100
|
+
val req = PairingRequest(peerDeviceId, peerDeviceName, via, deferred)
|
|
101
|
+
// tryEmit returns false if the buffer is full + no subscriber;
|
|
102
|
+
// in that case treat it the same as "no UI listening" — deny.
|
|
103
|
+
val emitted = _requests.tryEmit(req)
|
|
104
|
+
if (!emitted) {
|
|
105
|
+
throw PairingDeniedException(
|
|
106
|
+
peerDeviceId,
|
|
107
|
+
peerDeviceName,
|
|
108
|
+
"no UI subscriber for pairing requests",
|
|
109
|
+
)
|
|
110
|
+
}
|
|
111
|
+
val approved = withTimeoutOrNull(requestTimeoutMs) { deferred.await() } ?: false
|
|
112
|
+
if (!approved) {
|
|
113
|
+
throw PairingDeniedException(peerDeviceId, peerDeviceName, "denied or timed out")
|
|
114
|
+
}
|
|
115
|
+
val now = System.currentTimeMillis()
|
|
116
|
+
val fresh = Pairing(
|
|
117
|
+
peerDeviceId = peerDeviceId,
|
|
118
|
+
peerDeviceName = peerDeviceName,
|
|
119
|
+
pairingKey = PairingHandshake.generatePairingKey(),
|
|
120
|
+
pairedAt = now,
|
|
121
|
+
lastUsedAt = now,
|
|
122
|
+
via = via,
|
|
123
|
+
)
|
|
124
|
+
store.set(fresh)
|
|
125
|
+
return fresh
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/** Mark a pairing as used (bumps lastUsedAt). */
|
|
129
|
+
fun touch(peerDeviceId: String) {
|
|
130
|
+
val existing = store.get(peerDeviceId) ?: return
|
|
131
|
+
store.set(existing.copy(lastUsedAt = System.currentTimeMillis()))
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** Forget a pairing — host UI surfaces this as "revoke". */
|
|
135
|
+
fun revoke(peerDeviceId: String) {
|
|
136
|
+
store.remove(peerDeviceId)
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** Thrown by [PairingPolicy.approveOrFetch] when the user denies / times out. */
|
|
141
|
+
class PairingDeniedException(
|
|
142
|
+
val peerDeviceId: String,
|
|
143
|
+
val peerDeviceName: String,
|
|
144
|
+
reason: String,
|
|
145
|
+
) : Exception("[DVAI/pairing] denied: $peerDeviceName ($peerDeviceId): $reason")
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core.pairing
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import java.io.File
|
|
5
|
+
import kotlinx.serialization.Serializable
|
|
6
|
+
import kotlinx.serialization.json.Json
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Persistent pairing store (Kotlin mirror of `NodeFsPairingStore`
|
|
10
|
+
* from `@dvai-bridge/core/src/pairing/store.ts`). Backed by
|
|
11
|
+
* a single JSON file under
|
|
12
|
+
* `applicationContext.cacheDir/dvai-bridge/pairings.json`.
|
|
13
|
+
*/
|
|
14
|
+
class PairingStore(context: Context) {
|
|
15
|
+
private val cacheRoot: File =
|
|
16
|
+
File(context.applicationContext.cacheDir, "dvai-bridge").also {
|
|
17
|
+
if (!it.exists()) it.mkdirs()
|
|
18
|
+
}
|
|
19
|
+
private val file: File = File(cacheRoot, "pairings.json")
|
|
20
|
+
private val json = Json { ignoreUnknownKeys = true; prettyPrint = true }
|
|
21
|
+
private val lock = Any()
|
|
22
|
+
|
|
23
|
+
@Serializable
|
|
24
|
+
private data class Persisted(val pairings: Map<String, Pairing> = emptyMap())
|
|
25
|
+
|
|
26
|
+
private fun load(): MutableMap<String, Pairing> = synchronized(lock) {
|
|
27
|
+
if (!file.exists()) return mutableMapOf()
|
|
28
|
+
return try {
|
|
29
|
+
val raw = file.readText(Charsets.UTF_8)
|
|
30
|
+
val parsed = json.decodeFromString(Persisted.serializer(), raw)
|
|
31
|
+
parsed.pairings.toMutableMap()
|
|
32
|
+
} catch (_: Throwable) {
|
|
33
|
+
mutableMapOf()
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private fun save(map: Map<String, Pairing>) = synchronized(lock) {
|
|
38
|
+
try {
|
|
39
|
+
file.writeText(
|
|
40
|
+
json.encodeToString(Persisted.serializer(), Persisted(map)),
|
|
41
|
+
Charsets.UTF_8,
|
|
42
|
+
)
|
|
43
|
+
} catch (_: Throwable) {
|
|
44
|
+
// best-effort
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
fun get(peerDeviceId: String): Pairing? = load()[peerDeviceId]
|
|
49
|
+
|
|
50
|
+
fun set(p: Pairing) {
|
|
51
|
+
synchronized(lock) {
|
|
52
|
+
val map = load()
|
|
53
|
+
map[p.peerDeviceId] = p
|
|
54
|
+
save(map)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
fun list(): List<Pairing> = load().values.toList()
|
|
59
|
+
|
|
60
|
+
fun remove(peerDeviceId: String) {
|
|
61
|
+
synchronized(lock) {
|
|
62
|
+
val map = load()
|
|
63
|
+
map.remove(peerDeviceId)
|
|
64
|
+
save(map)
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
fun clear() {
|
|
69
|
+
synchronized(lock) {
|
|
70
|
+
if (file.exists()) file.delete()
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Path on disk — exposed for diagnostics + tests. */
|
|
75
|
+
fun storePath(): String = file.absolutePath
|
|
76
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core
|
|
2
|
+
|
|
3
|
+
import io.ktor.client.request.*
|
|
4
|
+
import io.ktor.client.statement.*
|
|
5
|
+
import io.ktor.http.*
|
|
6
|
+
import io.ktor.server.routing.*
|
|
7
|
+
import io.ktor.server.testing.*
|
|
8
|
+
import kotlinx.serialization.json.*
|
|
9
|
+
import org.junit.Assert.*
|
|
10
|
+
import org.junit.Test
|
|
11
|
+
|
|
12
|
+
class HandlerDispatchTest {
|
|
13
|
+
private val ctx = HandlerContext(modelId = "test-model", backendName = "shared")
|
|
14
|
+
|
|
15
|
+
private class FakeHandlers : DvaiHandlers {
|
|
16
|
+
override suspend fun handleChatCompletion(body: JsonObject, ctx: HandlerContext): HandlerResponse =
|
|
17
|
+
HandlerResponse.Json(200, buildJsonObject {
|
|
18
|
+
put("id", "chatcmpl-fake")
|
|
19
|
+
put("object", "chat.completion")
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
override suspend fun handleCompletion(body: JsonObject, ctx: HandlerContext): HandlerResponse =
|
|
23
|
+
HandlerResponse.Json(200, buildJsonObject { put("object", "text_completion") })
|
|
24
|
+
|
|
25
|
+
override suspend fun handleEmbeddings(body: JsonObject, ctx: HandlerContext): HandlerResponse =
|
|
26
|
+
HandlerResponse.Json(200, buildJsonObject { put("object", "list") })
|
|
27
|
+
|
|
28
|
+
override suspend fun handleModels(ctx: HandlerContext): HandlerResponse =
|
|
29
|
+
HandlerResponse.Json(200, buildJsonObject {
|
|
30
|
+
put("object", "list")
|
|
31
|
+
putJsonArray("data") {
|
|
32
|
+
addJsonObject { put("id", ctx.modelId) }
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@Test
|
|
38
|
+
fun `OPTIONS preflight returns 204 with PNA header`() = testApplication {
|
|
39
|
+
application {
|
|
40
|
+
routing {
|
|
41
|
+
installDispatchRoutes(FakeHandlers(), ctx, CorsConfig.Wildcard)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
val response = client.options("/v1/chat/completions")
|
|
45
|
+
assertEquals(HttpStatusCode.NoContent, response.status)
|
|
46
|
+
assertEquals("true", response.headers["Access-Control-Allow-Private-Network"])
|
|
47
|
+
assertEquals("*", response.headers["Access-Control-Allow-Origin"])
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@Test
|
|
51
|
+
fun `unknown path returns 404`() = testApplication {
|
|
52
|
+
application {
|
|
53
|
+
routing {
|
|
54
|
+
installDispatchRoutes(FakeHandlers(), ctx, CorsConfig.Wildcard)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
val response = client.get("/v1/unknown")
|
|
58
|
+
assertEquals(HttpStatusCode.NotFound, response.status)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@Test
|
|
62
|
+
fun `GET v1 models returns canned`() = testApplication {
|
|
63
|
+
application {
|
|
64
|
+
routing {
|
|
65
|
+
installDispatchRoutes(FakeHandlers(), ctx, CorsConfig.Wildcard)
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
val response = client.get("/v1/models")
|
|
69
|
+
assertEquals(HttpStatusCode.OK, response.status)
|
|
70
|
+
val text = response.bodyAsText()
|
|
71
|
+
val json = Json.parseToJsonElement(text) as JsonObject
|
|
72
|
+
assertEquals("list", json["object"]!!.jsonPrimitive.content)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core
|
|
2
|
+
|
|
3
|
+
import kotlinx.coroutines.runBlocking
|
|
4
|
+
import org.junit.After
|
|
5
|
+
import org.junit.Assert.*
|
|
6
|
+
import org.junit.Test
|
|
7
|
+
|
|
8
|
+
class HttpServerTest {
|
|
9
|
+
private val servers = mutableListOf<HttpServer>()
|
|
10
|
+
|
|
11
|
+
@After
|
|
12
|
+
fun tearDown() = runBlocking {
|
|
13
|
+
servers.forEach { runCatching { it.stop() } }
|
|
14
|
+
servers.clear()
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@Test
|
|
18
|
+
fun `bind base port when free`() = runBlocking {
|
|
19
|
+
val server = HttpServer().also { servers.add(it) }
|
|
20
|
+
val port = server.tryBind(basePort = 39101, maxAttempts = 4, host = "127.0.0.1")
|
|
21
|
+
assertEquals(39101, port)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@Test
|
|
25
|
+
fun `falls back to next port on conflict`() = runBlocking {
|
|
26
|
+
val blocker = HttpServer().also { servers.add(it) }
|
|
27
|
+
blocker.tryBind(basePort = 39110, maxAttempts = 1, host = "127.0.0.1")
|
|
28
|
+
|
|
29
|
+
val server = HttpServer().also { servers.add(it) }
|
|
30
|
+
val port = server.tryBind(basePort = 39110, maxAttempts = 4, host = "127.0.0.1")
|
|
31
|
+
assertEquals(39111, port)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Test
|
|
35
|
+
fun `stop is idempotent`() = runBlocking {
|
|
36
|
+
val server = HttpServer().also { servers.add(it) }
|
|
37
|
+
// Stop before start — should not throw
|
|
38
|
+
server.stop()
|
|
39
|
+
server.tryBind(basePort = 39120, maxAttempts = 1, host = "127.0.0.1")
|
|
40
|
+
server.stop()
|
|
41
|
+
// Double-stop — should not throw
|
|
42
|
+
server.stop()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Test
|
|
46
|
+
fun `throws actionable error when all ports blocked`() = runBlocking {
|
|
47
|
+
@Suppress("UNUSED_VARIABLE")
|
|
48
|
+
val blockers = (0 until 3).map { i ->
|
|
49
|
+
HttpServer().also {
|
|
50
|
+
servers.add(it)
|
|
51
|
+
it.tryBind(basePort = 39130 + i, maxAttempts = 1, host = "127.0.0.1")
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
val server = HttpServer().also { servers.add(it) }
|
|
55
|
+
try {
|
|
56
|
+
server.tryBind(basePort = 39130, maxAttempts = 3, host = "127.0.0.1")
|
|
57
|
+
fail("Expected exception")
|
|
58
|
+
} catch (e: IllegalStateException) {
|
|
59
|
+
assertTrue(
|
|
60
|
+
"Error should name the tried range: ${e.message}",
|
|
61
|
+
e.message?.contains("39130..39132") == true,
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
package/android/src/test/java/co/deepvoiceai/bridge/shared/core/capability/CapabilityCacheTest.kt
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
package co.deepvoiceai.bridge.shared.core.capability
|
|
2
|
+
|
|
3
|
+
import androidx.test.core.app.ApplicationProvider
|
|
4
|
+
import org.junit.After
|
|
5
|
+
import org.junit.Assert.assertEquals
|
|
6
|
+
import org.junit.Assert.assertNotNull
|
|
7
|
+
import org.junit.Assert.assertNull
|
|
8
|
+
import org.junit.Assert.assertTrue
|
|
9
|
+
import org.junit.Test
|
|
10
|
+
import org.junit.runner.RunWith
|
|
11
|
+
import org.robolectric.RobolectricTestRunner
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Unit tests for the JSON-on-disk [CapabilityCache] adapter. Uses
|
|
15
|
+
* Robolectric for `Context.cacheDir` — same approach the existing
|
|
16
|
+
* shared-core HTTP tests use for context-dependent code.
|
|
17
|
+
*/
|
|
18
|
+
@RunWith(RobolectricTestRunner::class)
|
|
19
|
+
class CapabilityCacheTest {
|
|
20
|
+
|
|
21
|
+
private val ctx = ApplicationProvider.getApplicationContext<android.content.Context>()
|
|
22
|
+
private val cache = CapabilityCache(ctx)
|
|
23
|
+
|
|
24
|
+
@After
|
|
25
|
+
fun cleanup() {
|
|
26
|
+
cache.clear()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Test
|
|
30
|
+
fun `empty cache returns null on get`() {
|
|
31
|
+
cache.clear()
|
|
32
|
+
val score = cache.get(CapabilityCacheKey("model-x", "3.0.0"))
|
|
33
|
+
assertNull(score)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@Test
|
|
37
|
+
fun `set then get round-trips`() {
|
|
38
|
+
val score = CapabilityScore(
|
|
39
|
+
modelId = "qwen-1.5b",
|
|
40
|
+
deviceId = "test-device",
|
|
41
|
+
libraryVersion = "3.0.0",
|
|
42
|
+
tokPerSec = 28.4,
|
|
43
|
+
source = ScoreSource.PROBE,
|
|
44
|
+
measuredAt = 1_700_000_000_000L,
|
|
45
|
+
)
|
|
46
|
+
cache.set(score)
|
|
47
|
+
val got = cache.get(CapabilityCacheKey("qwen-1.5b", "3.0.0"))
|
|
48
|
+
assertNotNull(got)
|
|
49
|
+
assertEquals(28.4, got!!.tokPerSec, 0.0001)
|
|
50
|
+
assertEquals("test-device", got.deviceId)
|
|
51
|
+
assertEquals(ScoreSource.PROBE, got.source)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@Test
|
|
55
|
+
fun `library version is part of the key`() {
|
|
56
|
+
val s1 = CapabilityScore("m", "d", "3.0.0", 10.0, ScoreSource.HEURISTIC, 1L)
|
|
57
|
+
val s2 = CapabilityScore("m", "d", "3.1.0", 20.0, ScoreSource.HEURISTIC, 2L)
|
|
58
|
+
cache.set(s1)
|
|
59
|
+
cache.set(s2)
|
|
60
|
+
assertEquals(10.0, cache.get(CapabilityCacheKey("m", "3.0.0"))!!.tokPerSec, 0.0001)
|
|
61
|
+
assertEquals(20.0, cache.get(CapabilityCacheKey("m", "3.1.0"))!!.tokPerSec, 0.0001)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@Test
|
|
65
|
+
fun `list returns all entries`() {
|
|
66
|
+
cache.set(CapabilityScore("a", "d", "3.0.0", 1.0, ScoreSource.PROBE, 1L))
|
|
67
|
+
cache.set(CapabilityScore("b", "d", "3.0.0", 2.0, ScoreSource.PROBE, 2L))
|
|
68
|
+
val all = cache.list()
|
|
69
|
+
assertEquals(2, all.size)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@Test
|
|
73
|
+
fun `clear empties the cache`() {
|
|
74
|
+
cache.set(CapabilityScore("x", "d", "3.0.0", 99.0, ScoreSource.HEURISTIC, 0L))
|
|
75
|
+
assertNotNull(cache.get(CapabilityCacheKey("x", "3.0.0")))
|
|
76
|
+
cache.clear()
|
|
77
|
+
assertNull(cache.get(CapabilityCacheKey("x", "3.0.0")))
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@Test
|
|
81
|
+
fun `cachePath is under cacheDir`() {
|
|
82
|
+
val p = cache.cachePath()
|
|
83
|
+
assertTrue("expected dvai-bridge segment in $p", p.contains("dvai-bridge"))
|
|
84
|
+
assertTrue("expected capability.json in $p", p.endsWith("capability.json"))
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@Test
|
|
88
|
+
fun `DeviceID generate produces base64-url string`() {
|
|
89
|
+
val id = DeviceID.generate()
|
|
90
|
+
assertTrue("got: $id", id.matches(Regex("^[A-Za-z0-9_-]+$")))
|
|
91
|
+
assertTrue("expected length >= 20, got ${id.length}", id.length >= 20)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@Test
|
|
95
|
+
fun `DeviceID get is stable across calls`() {
|
|
96
|
+
val a = DeviceID.get(ctx)
|
|
97
|
+
val b = DeviceID.get(ctx)
|
|
98
|
+
assertEquals(a, b)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@Test
|
|
102
|
+
fun `DeviceID reset produces a fresh id`() {
|
|
103
|
+
val a = DeviceID.get(ctx)
|
|
104
|
+
val b = DeviceID.reset(ctx)
|
|
105
|
+
assertTrue("reset should be different from current — got $a == $b", a != b)
|
|
106
|
+
}
|
|
107
|
+
}
|