The sentence helper in the AAC reference app runs an on-device language model on Google's LiteRT-LM web runtime. The app serves the runtime from its own site, under vendor/litert-lm--/, put there by third_party/litert-lm/vendor.sh. When someone downloads the sentence helper, the app copies the runtime files their browser needs into their model store and runs them from there, in a worker on their device. Nothing they type is sent anywhere. LiteRT-LM (@litert-lm/core, the version in the directory name), by Google LLC (The ODML Authors). litertlm_wasm_internal.js and .wasm, litertlm_wasm_asyncify_internal.js and .wasm, litertlm_wasm_compat_internal.js and .wasm, and litertlm_wasm_compat_asyncify_internal.js and .wasm: unchanged from the npm package. They are Google's prebuilt WebAssembly builds of LiteRT-LM, one for each combination of WebAssembly features (relaxed SIMD, JavaScript Promise Integration). A browser downloads only the one it runs. ai-worker.js: the app's own worker (worker.js beside vendor.sh), bundled by esbuild with the JavaScript of @litert-lm/core and @litertjs/wasm-utils, unchanged except one line: the runtime's default WebAssembly location (a public CDN) is emptied, so the runtime can never load anything from another site. The app always hands it the WebAssembly itself. Licensed under the Apache License, Version 2.0: LICENSE.txt beside this file (LiteRT-LM's LICENSE, verbatim). Source: https://www.npmjs.com/package/@litert-lm/core https://www.npmjs.com/package/@litertjs/wasm-utils (package.json "license": "Apache-2.0" in both), https://github.com/google-ai-edge/LiteRT-LM (LICENSE read 2026-10-01 at tag v0.17.1, commit 5e58e9a0aef7abf7091207a8b1d1063a1c800f08) The language model the runtime runs is not part of this directory and is not covered by LICENSE.txt. The app publishes it separately, with its own licence and attribution, in the sentence helper's catalogue (Settings > Sentence helper).