@bircleai/widget-protocol 0.4.3 → 0.6.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/dist/index.cjs CHANGED
@@ -90,7 +90,8 @@ var SERVER_PROVIDED_THEME_FIELDS = [
90
90
  "colorScheme",
91
91
  "poweredBy",
92
92
  "locale",
93
- "texts"
93
+ "texts",
94
+ "faqs"
94
95
  ];
95
96
  var MAX_THEME_LABEL = 40;
96
97
  var MAX_THEME_TAGLINE = 80;
package/dist/index.d.cts CHANGED
@@ -40,6 +40,15 @@ interface SessionRequest {
40
40
  * "ORIGIN EN CLIENTES NATIVOS" del README del SDK.
41
41
  */
42
42
  host_origin?: string;
43
+ /**
44
+ * Plataforma del cliente (enum de canales de la plataforma: web · mobile ·
45
+ * api · whatsapp · email). El ÚNICO valor con efecto es `"mobile"` — lo
46
+ * declara `@bircleai/react-native` y el Gateway lo valida contra el enum
47
+ * (cualquier otro valor degrada a `web`) y lo FIRMA como claim del session
48
+ * token: los hilos de la app quedan con canal `mobile` en el Dashboard.
49
+ * Ausente ⇒ `web` (los SDK web no lo mandan).
50
+ */
51
+ client_platform?: string;
43
52
  /**
44
53
  * Identificador OPACO y persistente del visitante, generado y guardado por el
45
54
  * cliente (`localStorage` en web, `AsyncStorage`/Keychain en mobile). Si cumple
@@ -348,6 +357,21 @@ interface ThemeResponse {
348
357
  launcherLabel?: string;
349
358
  /** `false` oculta el footer "Powered by BircleAI". Cualquier otro valor lo muestra. */
350
359
  poweredBy?: boolean;
360
+ /**
361
+ * Preguntas frecuentes del chat: chips que se muestran sobre el composer
362
+ * mientras la conversación está vacía (después colapsan a un botón que las
363
+ * re-despliega). Tocar una envía su `message` (o el `label` si no hay) como
364
+ * mensaje del usuario, por el camino normal — el agente la responde como
365
+ * cualquier consulta.
366
+ *
367
+ * Configurables desde la pestaña Apariencia del Dashboard, por embed key.
368
+ * Tope 6; `label` <= 60 chars (lo que se ve), `message` <= 500 (lo que se
369
+ * envía). Ambos se renderizan como `textContent`, nunca como markup.
370
+ */
371
+ faqs?: Array<{
372
+ label: string;
373
+ message?: string;
374
+ }>;
351
375
  /**
352
376
  * Hosts https permitidos para renderizar media rica (allow-list; lo consume la
353
377
  * UI, no el core).
@@ -401,7 +425,7 @@ interface ThemeResponse {
401
425
  * blancas (el `toUiView` del Gateway y la del widget web) — son defensa en
402
426
  * profundidad a propósito, no una duplicación accidental.
403
427
  */
404
- declare const SERVER_PROVIDED_THEME_FIELDS: readonly ["primaryColor", "accentColor", "launcherIcon", "launcherLabel", "position", "headerLogo", "assistantName", "assistantTagline", "assistantAvatar", "fontFamily", "colorScheme", "poweredBy", "locale", "texts"];
428
+ declare const SERVER_PROVIDED_THEME_FIELDS: readonly ["primaryColor", "accentColor", "launcherIcon", "launcherLabel", "position", "headerLogo", "assistantName", "assistantTagline", "assistantAvatar", "fontFamily", "colorScheme", "poweredBy", "locale", "texts", "faqs"];
405
429
  /** Subconjunto de `ThemeResponse` que el server realmente puede mandar (ver `SERVER_PROVIDED_THEME_FIELDS`). */
406
430
  type ServerThemeResponse = Pick<ThemeResponse, (typeof SERVER_PROVIDED_THEME_FIELDS)[number]>;
407
431
  /** Tope de `assistantName` y `launcherLabel`. Más que esto no entra en un header de teléfono. */
package/dist/index.d.ts CHANGED
@@ -40,6 +40,15 @@ interface SessionRequest {
40
40
  * "ORIGIN EN CLIENTES NATIVOS" del README del SDK.
41
41
  */
42
42
  host_origin?: string;
43
+ /**
44
+ * Plataforma del cliente (enum de canales de la plataforma: web · mobile ·
45
+ * api · whatsapp · email). El ÚNICO valor con efecto es `"mobile"` — lo
46
+ * declara `@bircleai/react-native` y el Gateway lo valida contra el enum
47
+ * (cualquier otro valor degrada a `web`) y lo FIRMA como claim del session
48
+ * token: los hilos de la app quedan con canal `mobile` en el Dashboard.
49
+ * Ausente ⇒ `web` (los SDK web no lo mandan).
50
+ */
51
+ client_platform?: string;
43
52
  /**
44
53
  * Identificador OPACO y persistente del visitante, generado y guardado por el
45
54
  * cliente (`localStorage` en web, `AsyncStorage`/Keychain en mobile). Si cumple
@@ -348,6 +357,21 @@ interface ThemeResponse {
348
357
  launcherLabel?: string;
349
358
  /** `false` oculta el footer "Powered by BircleAI". Cualquier otro valor lo muestra. */
350
359
  poweredBy?: boolean;
360
+ /**
361
+ * Preguntas frecuentes del chat: chips que se muestran sobre el composer
362
+ * mientras la conversación está vacía (después colapsan a un botón que las
363
+ * re-despliega). Tocar una envía su `message` (o el `label` si no hay) como
364
+ * mensaje del usuario, por el camino normal — el agente la responde como
365
+ * cualquier consulta.
366
+ *
367
+ * Configurables desde la pestaña Apariencia del Dashboard, por embed key.
368
+ * Tope 6; `label` <= 60 chars (lo que se ve), `message` <= 500 (lo que se
369
+ * envía). Ambos se renderizan como `textContent`, nunca como markup.
370
+ */
371
+ faqs?: Array<{
372
+ label: string;
373
+ message?: string;
374
+ }>;
351
375
  /**
352
376
  * Hosts https permitidos para renderizar media rica (allow-list; lo consume la
353
377
  * UI, no el core).
@@ -401,7 +425,7 @@ interface ThemeResponse {
401
425
  * blancas (el `toUiView` del Gateway y la del widget web) — son defensa en
402
426
  * profundidad a propósito, no una duplicación accidental.
403
427
  */
404
- declare const SERVER_PROVIDED_THEME_FIELDS: readonly ["primaryColor", "accentColor", "launcherIcon", "launcherLabel", "position", "headerLogo", "assistantName", "assistantTagline", "assistantAvatar", "fontFamily", "colorScheme", "poweredBy", "locale", "texts"];
428
+ declare const SERVER_PROVIDED_THEME_FIELDS: readonly ["primaryColor", "accentColor", "launcherIcon", "launcherLabel", "position", "headerLogo", "assistantName", "assistantTagline", "assistantAvatar", "fontFamily", "colorScheme", "poweredBy", "locale", "texts", "faqs"];
405
429
  /** Subconjunto de `ThemeResponse` que el server realmente puede mandar (ver `SERVER_PROVIDED_THEME_FIELDS`). */
406
430
  type ServerThemeResponse = Pick<ThemeResponse, (typeof SERVER_PROVIDED_THEME_FIELDS)[number]>;
407
431
  /** Tope de `assistantName` y `launcherLabel`. Más que esto no entra en un header de teléfono. */
package/dist/index.js CHANGED
@@ -42,7 +42,8 @@ var SERVER_PROVIDED_THEME_FIELDS = [
42
42
  "colorScheme",
43
43
  "poweredBy",
44
44
  "locale",
45
- "texts"
45
+ "texts",
46
+ "faqs"
46
47
  ];
47
48
  var MAX_THEME_LABEL = 40;
48
49
  var MAX_THEME_TAGLINE = 80;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bircleai/widget-protocol",
3
- "version": "0.4.3",
3
+ "version": "0.6.0",
4
4
  "description": "Contrato compartido del Chat Gateway de BircleAI (tipos + helpers de parseo).",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",