Назначение
generated/typescript содержит TypeScript-представление контрактов из
proto/wraithbound, а sdk/typescript добавляет небольшой публичный клиент
LauncherService. Оба каталога входят в корневой Bun workspace и используют
одинаковые закреплённые версии protobuf-инструментов.
SDK предназначен для Electron main process и web composition layer. Renderer
не должен самостоятельно хранить access token или обращаться к admin API.
Генерация
После изменения любого.proto выполните:
buf.gen.yaml. Генератор создаёт ES-модули в
generated/typescript/src; результат коммитится вместе с исходным контрактом.
Сгенерированные файлы вручную не редактируются.
Использование
ClientContext к каждому запросу. Методы возвращают подписанный
manifest envelope без попытки считать его доверенным.
Граница доверия
TypeScript SDK не проверяет Ed25519-подпись и не превращает envelope в план установки. Полученные bytes передаются в Rust/main boundary, где выполняются:- проверка ключа и подписи;
- проверка версии и срока действия envelope;
- построение scanner/downloader plan;
- подготовка команды запуска Minecraft.
@wraithbound/launcher-admin-sdk из sdk/typescript-admin и никогда не
проходят через renderer state. Он подключается к приватному HTTP/2 gRPC
listener, добавляет bearer credential через interceptor и не предоставляет
доступа к самому значению token после создания клиента.
