@burdenoff/website-sdk 2026.1101.2 → 2026.1101.3
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
CHANGED
|
@@ -372,9 +372,16 @@ publishes audio, video or data, and it sends the avatar nothing to say.
|
|
|
372
372
|
production nothing else is added, so no preflight has to complete while the
|
|
373
373
|
page unloads. The server ends sessions on its own deadlines as well.
|
|
374
374
|
- **Consent copy is versioned.** The panel shows a consent card only when it
|
|
375
|
-
holds reviewed copy for exactly the version the server names
|
|
376
|
-
|
|
377
|
-
|
|
375
|
+
holds reviewed copy for exactly the version the server names; otherwise the
|
|
376
|
+
view stays as it was. `web-consent-2026-11-02` is product-neutral: its card
|
|
377
|
+
reads "a suggested question" on every site, whatever `productName` is, so
|
|
378
|
+
every product's site shows the same words and the server can bind one notice
|
|
379
|
+
digest for all of them (the card's title, intro, processing, storage and
|
|
380
|
+
privacy-link lines, each ending with a line feed: 760 bytes, SHA-256
|
|
381
|
+
`2e02b051ceb1163c14bc58fa63a954a12c0d1f2695029a6d4805922d74c793f7`).
|
|
382
|
+
`web-consent-2026-10-31` (which names the product, "a suggested Healthy Bowl
|
|
383
|
+
question") and `web-consent-2026-11` stay, unchanged, for servers that still
|
|
384
|
+
name them.
|
|
378
385
|
- **How a session ended.** When the worker leaves, the server closes the room,
|
|
379
386
|
or the session's time runs out with the room still open, the view says only
|
|
380
387
|
"The live avatar has ended." (key `finished`). The browser
|
|
@@ -474,6 +474,21 @@ var CONSENT = /* @__PURE__ */ new Map([
|
|
|
474
474
|
privacyLink: "How we handle this"
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
|
+
],
|
|
478
|
+
[
|
|
479
|
+
// The words of web-consent-2026-10-31 with no product name in them: one notice, byte for byte, on every product's
|
|
480
|
+
// site, because the server binds one consent version and one notice digest for all of them.
|
|
481
|
+
"web-consent-2026-11-02",
|
|
482
|
+
{
|
|
483
|
+
en: {
|
|
484
|
+
title: "Live AI avatar (beta)",
|
|
485
|
+
introProduct: null,
|
|
486
|
+
intro: "This is an AI avatar, not a real person. It reads the assistant's first eligible answer to a suggested question aloud for up to a minute. The answer is AI-generated and can be wrong.",
|
|
487
|
+
processing: "When you start, Cloudflare checks for bots. The answer text goes to Google to create the voice. Our server sends that voice through LiveKit to Protoface, which makes the avatar video streamed through LiveKit. Your browser connects to LiveKit, which sees your IP address.",
|
|
488
|
+
storage: "Your microphone and camera are not used. We do not record the live session or store the generated voice. We keep a record of this consent. The privacy notice explains our safeguards, storage periods and the providers' processing. For people aged eighteen and over.",
|
|
489
|
+
privacyLink: "How we handle this"
|
|
490
|
+
}
|
|
491
|
+
}
|
|
477
492
|
]
|
|
478
493
|
]);
|
|
479
494
|
function avatarConsentCopy(version, locale) {
|
|
@@ -1229,7 +1244,7 @@ function AvatarLiveView({
|
|
|
1229
1244
|
className: "w-full max-w-sm rounded-lg border border-border p-4 text-start",
|
|
1230
1245
|
children: [
|
|
1231
1246
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { id: consentTitleId, className: "text-base font-semibold", children: copy.title }),
|
|
1232
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm", children: productName === null ? copy.intro : chunkO4GS3XPZ_js.fill(copy.introProduct, { product: productName }) }),
|
|
1247
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm", children: productName === null || copy.introProduct === null ? copy.intro : chunkO4GS3XPZ_js.fill(copy.introProduct, { product: productName }) }),
|
|
1233
1248
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: copy.processing }),
|
|
1234
1249
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: copy.storage }),
|
|
1235
1250
|
/* @__PURE__ */ jsxRuntime.jsxs(
|