@threadbase-sh/streamer 1.105.1 → 1.106.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/README.md +1 -1
- package/dist/cli.cjs +11 -4
- package/dist/cli.cjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -184,7 +184,7 @@ Full endpoint reference: [docs/api-reference.md](docs/api-reference.md).
|
|
|
184
184
|
|
|
185
185
|
## Mobile Pairing (QR)
|
|
186
186
|
|
|
187
|
-
A pairing QR is printed on server start (skip with `--no-pair-qr`), or reprint one anytime with `tb-streamer pair
|
|
187
|
+
A pairing QR is printed on server start (skip with `--no-pair-qr`), or reprint one anytime with `tb-streamer pair` (`tb-streamer pair --dev` prints one for the TbDev QA app, which registers `threadbase-dev://` so it can sit beside Threadbase). Scanning it trades a single-use token for a sealed API key — the key itself never appears in the QR.
|
|
188
188
|
|
|
189
189
|
If the phone can't reach `localhost`, give it a reachable address via (in order of precedence) `--public-url`, `THREADBASE_PUBLIC_URL`, or `public_url:` in `server.yaml`. HTTPS is required except for `localhost`.
|
|
190
190
|
|
package/dist/cli.cjs
CHANGED
|
@@ -192591,7 +192591,8 @@ async function printServerBanner({
|
|
|
192591
192591
|
port,
|
|
192592
192592
|
apiKey,
|
|
192593
192593
|
publicUrl,
|
|
192594
|
-
includeQr
|
|
192594
|
+
includeQr,
|
|
192595
|
+
scheme = "threadbase"
|
|
192595
192596
|
}, deps = {}) {
|
|
192596
192597
|
const log21 = deps.log ?? defaultLog;
|
|
192597
192598
|
const fetchFn = deps.fetch ?? globalThis.fetch;
|
|
@@ -192613,7 +192614,7 @@ async function printServerBanner({
|
|
|
192613
192614
|
const { token, expiresAt, expiresInSeconds } = await res.json();
|
|
192614
192615
|
const expSeconds = Math.floor(expiresAt / 1e3);
|
|
192615
192616
|
let fingerprint2;
|
|
192616
|
-
let payload =
|
|
192617
|
+
let payload = `${scheme}://pair?url=${encodeURIComponent(url2)}&token=${token}&exp=${expSeconds}`;
|
|
192617
192618
|
if (e2eeOffered) {
|
|
192618
192619
|
const spk = identityKey();
|
|
192619
192620
|
payload += `&spk=${spk}&v=1`;
|
|
@@ -193338,11 +193339,17 @@ program2.command("devices").description("List, revoke and erase paired devices")
|
|
|
193338
193339
|
log20.info(`Erased ${deviceId}.`, void 0, "console");
|
|
193339
193340
|
})
|
|
193340
193341
|
);
|
|
193341
|
-
program2.command("pair").description("Print a pairing QR code (server must already be running)").option("-p, --port <number>", "Port the server is listening on", "8766").action(async (opts) => {
|
|
193342
|
+
program2.command("pair").description("Print a pairing QR code (server must already be running)").option("-p, --port <number>", "Port the server is listening on", "8766").option("--dev", "Pair the TbDev QA app (threadbase-dev://) instead of Threadbase", false).action(async (opts) => {
|
|
193342
193343
|
const port = Number.parseInt(opts.port, 10);
|
|
193343
193344
|
const apiKey = loadOrCreateApiKey();
|
|
193344
193345
|
const publicUrl = loadPublicUrl() ?? null;
|
|
193345
|
-
await printServerBanner({
|
|
193346
|
+
await printServerBanner({
|
|
193347
|
+
port,
|
|
193348
|
+
apiKey,
|
|
193349
|
+
publicUrl,
|
|
193350
|
+
includeQr: true,
|
|
193351
|
+
scheme: opts.dev ? "threadbase-dev" : "threadbase"
|
|
193352
|
+
});
|
|
193346
193353
|
});
|
|
193347
193354
|
program2.command("codex [path]").description(
|
|
193348
193355
|
"Start a streamer-managed Codex session in a directory and attach this terminal to it (server must already be running)"
|