dokumentacja
Jedynym wymaganiem jest uruchomiony Docker Desktop. Na maszynie nic się nie instaluje: ani Go, ani kompilatorów, ani narzędzi do pakowania.
git clone https://github.com/Vitalii-Yemets/holdtotype cd holdtotype .\build.ps1 # model small, około 466 MB .\build.ps1 -Model medium # dokładniejszy, większy
Wynik trafia do dist/:
holdtotype.exetray client: Go, WinAPI, WebView2
whisper-server.exerecognition, whisper.cpp, static build
sherpa-server.exerecognition, sherpa-onnx, official static build, pinned and checksum-verified
sherpa-online-server.exestreaming recognition, sherpa-onnx, from the same pinned archive
llama-server.exethe editor model for post-processing, llama.cpp
models/the model you chose at build time
config.default.jsondefault settings
Kompilacja skrośna whisper.cpp i llama.cpp przez MinGW-w64 w kontenerze Linux, klient w Go z cgo do przechwytywania mikrofonu, generowanie ikon, pakowanie instalatora. Wszystko to jest w build/Dockerfile. Oba silniki są przypięte do konkretnych wersji, więc buildy pozostają powtarzalne.
Wszystko też działa w kontenerach, nic nie trzeba instalować:
docker build --file build/Dockerfile --target gotest . # testy jednostkowe Go i go vet, cel Windows docker run --rm -v "${PWD}:/w" -w /w node:20 sh -c "node test/build-page.js && cd test && npm i --no-save --silent jsdom && node ui.test.js" # strona ustawień w jsdom
client/internal/... — testy jednostkowe części, które niosą logikę: porównywanie wersji, duplikaty skrótów, reguły dla aplikacji, zamiany, polecenia głosowe, historia, łańcuchy promptów, analiza dźwięku, skróty plików i plik list.test/ui.test.js — prawdziwa strona ustawień wyrenderowana w jsdom: przełączanie sekcji, macierz tłumaczenia, edytor promptów, reguły, zamiany, polecenia, historia, usuwanie modeli, kreator pierwszego uruchomienia i brak błędów JavaScript.test/locales.test.js — każdy z ośmiu języków zawiera każdy tekst, o który proszą strona i program.test/setup.test.js — strona instalatora: kroki, wybór modelu, ciche przełączniki.client/internal/theme — każdy wygląd zachowuje własną twarz, narożniki, znaczniki poziomu i lampki.Potem uruchamiaj własny build zamiast pobranego. To ten sam program, zrobiony z tych samych źródeł.