# ClassCompare browser dependencies

All application code is covered by the repository's MIT license. No hosted inference API is used.

| Asset | Pinned source | License |
| --- | --- | --- |
| Transformers.js | npm `@huggingface/transformers` 4.3.0 | Apache-2.0; bundled in `vendor/transformers/LICENSE` |
| ONNX Runtime Web | npm `onnxruntime-web` 1.31.0-dev.20260914-8d85527a0, selected by Transformers.js | MIT; bundled in `vendor/onnx/LICENSE` |
| MiniLM ONNX model and tokenizer | `Xenova/all-MiniLM-L6-v2` at revision `751bff37182d3f1213fa05d7196b954e230abad9` | Apache-2.0; the same license text is included under `vendor/transformers/LICENSE` |
| PDF.js | npm `pdfjs-dist` 6.3.289, maintained by Mozilla | Apache-2.0; bundled in `vendor/pdfjs/LICENSE` |
| fflate | npm `fflate` 0.8.3, maintained by Arjun Barrett | MIT; bundled in `vendor/fflate/LICENSE` |

The MiniLM model originates from [sentence-transformers/all-MiniLM-L6-v2](https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2). The quantized browser export is maintained in [Xenova/all-MiniLM-L6-v2](https://huggingface.co/Xenova/all-MiniLM-L6-v2). Original authors retain their copyrights. This application does not claim authorship of the model or runtime.

`runtime-lock.json` records package integrity strings, model revision, byte sizes and SHA-256 hashes. `scripts/prepare_browser_runtime.py` verifies them before preparing files. Large vendor files are deliberately excluded from Git and must be prepared before previewing or deploying.

`imports-lock.json` and `scripts/prepare_browser_imports.py` do the same for the PDF and Word readers. PDF.js extracts PDF text; fflate decompresses selected DOCX XML entries after package size checks. No conversion API is used. Document reader assets add about 1.83 MB, loaded when their formats are used.
