@alxxsck/ai-assistant 2.17.0 → 2.20.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 CHANGED
@@ -135,6 +135,13 @@ const widget = new ChatWidgetInstance({
135
135
  No event subscription or listener cleanup is required. Parallel renewal signals
136
136
  are debounced, and replacing the session cancels a pending duplicate callback.
137
137
 
138
+ Scenario interaction observations never cross an `interactionSessionId`
139
+ boundary. A token replacement for the same session retries the same observation
140
+ IDs. Canonical renewal creates a new interaction session, so any unsent queue
141
+ owned by the previous session is discarded and sequencing starts again. This is
142
+ an intentional principal-isolation rule: old observations are never reauthenticated
143
+ with a new session token.
144
+
138
145
  ## Support identities and avatars
139
146
 
140
147
  Version 2.12.0 understands Support Presentations contract v1. Message bubbles use
@@ -219,16 +226,34 @@ const widget = new ChatWidgetInstance({
219
226
  handlers: {
220
227
  openPage: ({ route }) => productRouter.push(route),
221
228
  openModal: ({ modalName }) => productModals.open(modalName),
222
- highlight: ({ element, active }) => {
229
+ highlight: ({ element, active, reportActivation }) => {
223
230
  element?.classList.toggle("lola-highlight", active);
231
+ productHighlights.setAction(
232
+ element,
233
+ active
234
+ ? () => {
235
+ reportActivation();
236
+ productActions.openDeposit();
237
+ }
238
+ : null,
239
+ );
224
240
  },
225
241
  },
226
242
  });
227
243
  ```
228
244
 
245
+ `reportActivation()` is the authoritative signal that the product accepted the
246
+ user activation. Call it synchronously from the product-owned action handler,
247
+ before navigation can unmount the widget. It records the activation, not the
248
+ result of the product action. The attributed target remains observable until its
249
+ highlight is removed or replaced, including after the Scenario closes the chat.
250
+ The SDK observes target visibility, but never treats arbitrary host DOM clicks as
251
+ activation. Existing highlight handlers may ignore this callback.
252
+
229
253
  Page and modal targets arrive in canonical Lola command envelopes. The built-in
230
- element fallback resolves stable `[data-lola="..."]` attributes. CTA display,
231
- chat open/close, speech, voice conversations, and avatar animation stay internal.
254
+ element fallback resolves stable `[data-lola="..."]` attributes and reports only
255
+ visibility because it does not own the product action. CTA display, chat
256
+ open/close, speech, voice conversations, and avatar animation stay internal.
232
257
 
233
258
  Command lifecycle events are available as `command_received`,
234
259
  `command_succeeded`, `command_failed`, `command_expired`, and
package/dist/App.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { ExternallyAvailableActions } from "./avatar/Avatar";
3
3
  import type { WidgetConfig } from "./index.types";
4
4
  import type { CustomerInteractionSession } from "./types";
5
5
  import type { CommandRuntime } from "./domain/command/CommandRuntime";
6
+ import type { ScenarioInteractionRuntime } from "./domain/scenario-interaction/ScenarioInteractionRuntime";
6
7
  export type AppApi = {
7
8
  onAvatarLoadStarted: () => {
8
9
  onAvatarReady: OnAvatarReady;
@@ -17,6 +18,7 @@ export type AppApi = {
17
18
  registerSetSession: (fn: ((session: CustomerInteractionSession) => void) | null) => void;
18
19
  registerSetLocale: (fn: ((locale: string) => void) | null) => void;
19
20
  commandRuntime: CommandRuntime;
21
+ scenarioInteractionRuntime: ScenarioInteractionRuntime;
20
22
  };
21
23
  type AppProps = {
22
24
  config: WidgetConfig;
@@ -1,4 +1,4 @@
1
- import { $ as $s } from "./index-C9sJVi7P.js";
1
+ import { a1 as $s } from "./index-BVQY-1rm.js";
2
2
  var Fr = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : typeof global < "u" ? global : typeof self < "u" ? self : {};
3
3
  const Ul = "182", Hf = 0, bc = 1, Wf = 2, js = 1, Ku = 2, Gr = 3, di = 0, jt = 1, Zn = 2, $n = 0, ur = 1, Ac = 2, Ec = 3, wc = 4, Xf = 5, Ci = 100, qf = 101, Yf = 102, Kf = 103, Zf = 104, $f = 200, jf = 201, Jf = 202, Qf = 203, wo = 204, Ro = 205, ed = 206, td = 207, nd = 208, id = 209, rd = 210, sd = 211, ad = 212, od = 213, ld = 214, Co = 0, Po = 1, Io = 2, dr = 3, Do = 4, Lo = 5, Fo = 6, Uo = 7, xa = 0, cd = 1, ud = 2, Un = 0, Zu = 1, $u = 2, ju = 3, Ju = 4, Qu = 5, eh = 6, th = 7, Rc = "attached", hd = "detached", nh = 300, Oi = 301, pr = 302, aa = 303, No = 304, ya = 306, wt = 1e3, En = 1001, Oo = 1002, Lt = 1003, fd = 1004, Ss = 1005, kt = 1006, La = 1007, Ii = 1008, sn = 1009, ih = 1010, rh = 1011, ts = 1012, Nl = 1013, Bn = 1014, wn = 1015, Jn = 1016, Ol = 1017, Bl = 1018, ns = 1020, sh = 35902, ah = 35899, oh = 1021, lh = 1022, mn = 1023, Qn = 1026, Di = 1027, ch = 1028, kl = 1029, mr = 1030, Vl = 1031, zl = 1033, Js = 33776, Qs = 33777, ea = 33778, ta = 33779, Bo = 35840, ko = 35841, Vo = 35842, zo = 35843, Go = 36196, Ho = 37492, Wo = 37496, Xo = 37488, qo = 37489, Yo = 37490, Ko = 37491, Zo = 37808, $o = 37809, jo = 37810, Jo = 37811, Qo = 37812, el = 37813, tl = 37814, nl = 37815, il = 37816, rl = 37817, sl = 37818, al = 37819, ol = 37820, ll = 37821, cl = 36492, ul = 36494, hl = 36495, fl = 36283, dl = 36284, pl = 36285, ml = 36286, uh = 2200, dd = 2201, pd = 2202, oa = 2300, _l = 2301, Fa = 2302, sr = 2400, ar = 2401, la = 2402, Gl = 2500, md = 2501, _d = 3200, Sa = 0, gd = 1, ci = "", Ue = "srgb", _r = "srgb-linear", ca = "linear", nt = "srgb", Gi = 7680, Cc = 519, vd = 512, xd = 513, yd = 514, Hl = 515, Sd = 516, Md = 517, Wl = 518, Td = 519, Pc = 35044, Ic = "300 es", Fn = 2e3, ua = 2001;
4
4
  function hh(s) {