@burdenoff/fe-libs 2026.926.2 → 2026.926.4

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.
Files changed (64) hide show
  1. package/dist/shared/assistant/autoRouting.d.ts +1 -0
  2. package/dist/shared/assistant/autoRouting.d.ts.map +1 -1
  3. package/dist/shared/assistant/autoRouting.js +1 -1
  4. package/dist/shared/assistant/capabilities.d.ts +5 -0
  5. package/dist/shared/assistant/capabilities.d.ts.map +1 -1
  6. package/dist/shared/assistant/capabilities.js +2 -1
  7. package/dist/shared/assistant/conversation.d.ts +29 -0
  8. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  9. package/dist/shared/assistant/guardedStorage.d.ts +32 -0
  10. package/dist/shared/assistant/guardedStorage.d.ts.map +1 -0
  11. package/dist/shared/assistant/guardedStorage.js +36 -0
  12. package/dist/shared/assistant/i18nManifest.d.ts +7 -0
  13. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  14. package/dist/shared/assistant/i18nManifest.js +7 -0
  15. package/dist/shared/assistant/index.d.ts +5 -0
  16. package/dist/shared/assistant/index.d.ts.map +1 -1
  17. package/dist/shared/assistant/liveTurns.d.ts +145 -0
  18. package/dist/shared/assistant/liveTurns.d.ts.map +1 -0
  19. package/dist/shared/assistant/liveTurns.js +99 -0
  20. package/dist/shared/assistant/operations.d.ts +7 -0
  21. package/dist/shared/assistant/operations.d.ts.map +1 -1
  22. package/dist/shared/assistant/operations.js +2 -2
  23. package/dist/shared/assistant/prewarm.d.ts +32 -4
  24. package/dist/shared/assistant/prewarm.d.ts.map +1 -1
  25. package/dist/shared/assistant/prewarm.js +35 -15
  26. package/dist/shared/assistant/product.d.ts +11 -1
  27. package/dist/shared/assistant/product.d.ts.map +1 -1
  28. package/dist/shared/assistant/product.js +8 -6
  29. package/dist/shared/assistant/store.d.ts.map +1 -1
  30. package/dist/shared/assistant/store.js +11 -10
  31. package/dist/shared/assistant/turnState.d.ts +12 -0
  32. package/dist/shared/assistant/turnState.d.ts.map +1 -1
  33. package/dist/shared/assistant/turnState.js +4 -1
  34. package/dist/shared/assistant/turnTimeline.d.ts +37 -3
  35. package/dist/shared/assistant/turnTimeline.d.ts.map +1 -1
  36. package/dist/shared/assistant/turnTimeline.js +45 -33
  37. package/dist/shared/assistant/turnTimingReport.d.ts +86 -0
  38. package/dist/shared/assistant/turnTimingReport.d.ts.map +1 -0
  39. package/dist/shared/assistant/turnTimingReport.js +123 -0
  40. package/dist/shared/assistant/turnTimingReporter.d.ts +146 -0
  41. package/dist/shared/assistant/turnTimingReporter.d.ts.map +1 -0
  42. package/dist/shared/assistant/turnTimingReporter.js +321 -0
  43. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  44. package/dist/shared/assistant/ui/AssistantChatArea.js +703 -544
  45. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +19 -0
  46. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
  47. package/dist/shared/assistant/ui/AssistantMessageItem.js +92 -88
  48. package/dist/shared/assistant/ui/AssistantMessageList.d.ts +22 -2
  49. package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
  50. package/dist/shared/assistant/ui/AssistantMessageList.js +37 -36
  51. package/dist/shared/assistant/ui/AssistantPendingWriteCard.d.ts +34 -0
  52. package/dist/shared/assistant/ui/AssistantPendingWriteCard.d.ts.map +1 -1
  53. package/dist/shared/assistant/ui/AssistantPendingWriteCard.js +31 -28
  54. package/dist/shared/assistant/ui/useVoiceSession.d.ts +1 -0
  55. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  56. package/dist/shared/assistant/ui/useVoiceSession.js +119 -117
  57. package/dist/shared/assistant/voice/voiceReopen.d.ts +117 -0
  58. package/dist/shared/assistant/voice/voiceReopen.d.ts.map +1 -0
  59. package/dist/shared/assistant/voice/voiceReopen.js +49 -0
  60. package/dist/shared/graphql/fetch.d.ts +10 -0
  61. package/dist/shared/graphql/fetch.d.ts.map +1 -1
  62. package/dist/shared/graphql/fetch.js +64 -62
  63. package/dist/shared-assistant.js +136 -131
  64. package/package.json +2 -2
@@ -0,0 +1,321 @@
1
+ import { graphqlFetch as e } from "../graphql/fetch.js";
2
+ import "../../shared-graphql.js";
3
+ import { REPORT_MY_ASSISTANT_TURN_TIMINGS as t } from "./operations.js";
4
+ import { getCapability as n, isUnknownFieldError as r, markSupported as i, markUnsupported as a } from "./capabilities.js";
5
+ import { subscribeTurnTimelines as o, turnClockMs as s } from "./turnTimeline.js";
6
+ import { buildAbandonedTurnReport as c, buildTurnTimingReport as l, isFinishedTurn as u } from "./turnTimingReport.js";
7
+ //#region src/shared/assistant/turnTimingReporter.ts
8
+ var d = {
9
+ flushAt: 5,
10
+ flushAfterMs: 15e3,
11
+ maxQueued: 50,
12
+ maxTurnsPerRequest: 20,
13
+ voiceAudioWaitMs: 3e4,
14
+ rateLimitPauseMs: 6e4,
15
+ rememberedTurns: 200,
16
+ maxRunningTurns: 20
17
+ };
18
+ function f() {
19
+ try {
20
+ let e = globalThis.crypto === void 0 ? null : globalThis.crypto;
21
+ if (!e) return null;
22
+ if (typeof e.randomUUID == "function") return e.randomUUID();
23
+ if (typeof e.getRandomValues != "function") return null;
24
+ let t = e.getRandomValues(new Uint8Array(16));
25
+ t[6] = t[6] & 15 | 64, t[8] = t[8] & 63 | 128;
26
+ let n = Array.from(t, (e) => e.toString(16).padStart(2, "0")).join("");
27
+ return `${n.slice(0, 8)}-${n.slice(8, 12)}-${n.slice(12, 16)}-${n.slice(16, 20)}-${n.slice(20)}`;
28
+ } catch {
29
+ return null;
30
+ }
31
+ }
32
+ var p = (e, t) => {
33
+ let n = setTimeout(e, t);
34
+ return () => clearTimeout(n);
35
+ };
36
+ function m(e) {
37
+ let t = d, n = e.schedule ?? p, r = e.now ?? Date.now, i = e.turnClock ?? s, a = e.nonce ?? f, o = () => {
38
+ try {
39
+ return e.isPageHidden?.() === !0;
40
+ } catch {
41
+ return !1;
42
+ }
43
+ }, m = /* @__PURE__ */ new Set(), h = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), _ = [], v = null, y = !1, b = !1, x = 0, S = !1, C = !1, w = !1, T = (e) => {
44
+ for (m.add(e); m.size > t.rememberedTurns;) {
45
+ let e = m.values().next().value;
46
+ if (e === void 0) break;
47
+ m.delete(e);
48
+ }
49
+ }, E = () => {
50
+ let e = v;
51
+ v = null, e?.();
52
+ }, D = () => {
53
+ S = !0, _ = [], E();
54
+ for (let e of h.values()) e.cancel();
55
+ h.clear(), g.clear();
56
+ }, O = () => {
57
+ if (D(), !w) {
58
+ w = !0;
59
+ try {
60
+ e.onUnsupported?.();
61
+ } catch {}
62
+ }
63
+ }, k = (n) => {
64
+ if (n.kind !== "dropped") {
65
+ if (n.kind === "unsupported" || !n.receipt.enabled) {
66
+ O();
67
+ return;
68
+ }
69
+ if (n.receipt.rateLimited && (x = r() + t.rateLimitPauseMs), !C) {
70
+ C = !0;
71
+ try {
72
+ e.onSupported?.();
73
+ } catch {}
74
+ }
75
+ }
76
+ }, A = (t, n) => {
77
+ try {
78
+ let r = a();
79
+ return r ? e.send({
80
+ nonce: r,
81
+ turns: t,
82
+ keepalive: n
83
+ }).then(k, () => void 0).catch(() => void 0) : Promise.resolve();
84
+ } catch {
85
+ return Promise.resolve();
86
+ }
87
+ };
88
+ function j(e) {
89
+ v || S || (v = n(() => {
90
+ v = null, P();
91
+ }, e));
92
+ }
93
+ function M() {
94
+ try {
95
+ y = !1;
96
+ let e = b;
97
+ if (b = !1, S || !_.length) return;
98
+ e || _.length >= t.flushAt ? P() : j(t.flushAfterMs);
99
+ } catch {}
100
+ }
101
+ function N() {
102
+ let e = i();
103
+ for (let [t, n] of [...g]) {
104
+ g.delete(t), T(t);
105
+ let r = c(n, e);
106
+ r && _.push(r);
107
+ }
108
+ _.length > t.maxQueued && _.splice(0, _.length - t.maxQueued);
109
+ }
110
+ function P(e = {}) {
111
+ try {
112
+ if (S) return;
113
+ let n = e.final === !0;
114
+ if (n && e.keepAwaitingAudio !== !0) for (let e of [...h.keys()]) I(e, !1);
115
+ if (n && e.abandonRunning === !0 && N(), !_.length) {
116
+ E();
117
+ return;
118
+ }
119
+ let i = x - r();
120
+ if (i > 0) {
121
+ j(i);
122
+ return;
123
+ }
124
+ if (n) {
125
+ for (E(); _.length;) A(_.splice(0, t.maxTurnsPerRequest), e.keepalive === !0);
126
+ return;
127
+ }
128
+ if (y) {
129
+ b = !0;
130
+ return;
131
+ }
132
+ E(), y = !0, A(_.splice(0, t.maxTurnsPerRequest), !1).then(M);
133
+ } catch {}
134
+ }
135
+ function F(e, n, r) {
136
+ T(e);
137
+ let i = l(n);
138
+ i && (_.push(i), _.length > t.maxQueued && _.splice(0, _.length - t.maxQueued), r && (o() ? P({
139
+ final: !0,
140
+ keepalive: !0,
141
+ keepAwaitingAudio: !0
142
+ }) : _.length >= t.flushAt ? P() : j(t.flushAfterMs)));
143
+ }
144
+ function I(e, t) {
145
+ let n = h.get(e);
146
+ n && (h.delete(e), n.cancel(), F(e, n.timeline, t));
147
+ }
148
+ let L = (e) => {
149
+ if (e.at.accepted !== void 0) for (g.delete(e.turnId), g.set(e.turnId, e); g.size > t.maxRunningTurns;) {
150
+ let e = g.keys().next().value;
151
+ if (e === void 0) break;
152
+ g.delete(e);
153
+ }
154
+ };
155
+ return {
156
+ observe: (e) => {
157
+ try {
158
+ if (S || m.has(e.turnId)) return;
159
+ if (!u(e)) {
160
+ L(e);
161
+ return;
162
+ }
163
+ let r = e.turnId;
164
+ g.delete(r);
165
+ let i = h.get(r);
166
+ if (e.channel === "voice" && e.at.firstAudio === void 0) {
167
+ if (i) {
168
+ i.timeline = e;
169
+ return;
170
+ }
171
+ let a = n(() => {
172
+ try {
173
+ I(r, !0);
174
+ } catch {}
175
+ }, t.voiceAudioWaitMs);
176
+ h.set(r, {
177
+ timeline: e,
178
+ cancel: a
179
+ });
180
+ return;
181
+ }
182
+ i && (h.delete(r), i.cancel()), F(r, e, !0);
183
+ } catch {}
184
+ },
185
+ flush: P,
186
+ dispose: () => {
187
+ S || (P({ final: !0 }), D());
188
+ },
189
+ stats: () => ({
190
+ queued: _.length,
191
+ awaitingAudio: h.size,
192
+ running: g.size,
193
+ stopped: S
194
+ })
195
+ };
196
+ }
197
+ var h = new Set([
198
+ "GRAPHQL_VALIDATION_FAILED",
199
+ "BAD_USER_INPUT",
200
+ "FORBIDDEN"
201
+ ]);
202
+ function g(e) {
203
+ if (typeof e.message == "string" && r(e.message)) return !0;
204
+ let t = e.extensions?.code;
205
+ return typeof t == "string" && h.has(t);
206
+ }
207
+ function _(e) {
208
+ return typeof e == "object" && !!e && !Array.isArray(e);
209
+ }
210
+ function v(e) {
211
+ if (!_(e)) return null;
212
+ let t = e.reportMyAssistantTurnTimings;
213
+ if (!_(t)) return null;
214
+ let { enabled: n, accepted: r, rejected: i, duplicate: a, rateLimited: o } = t;
215
+ return typeof n != "boolean" || typeof r != "number" || typeof i != "number" || typeof a != "boolean" || typeof o != "boolean" ? null : {
216
+ enabled: n,
217
+ accepted: r,
218
+ rejected: i,
219
+ duplicate: a,
220
+ rateLimited: o
221
+ };
222
+ }
223
+ function y(e) {
224
+ return !_(e) || !Array.isArray(e.errors) ? [] : e.errors.filter(_);
225
+ }
226
+ var b = { kind: "dropped" }, x = { kind: "unsupported" };
227
+ async function S(n, i, a = e) {
228
+ if (!i.workspaceId) return b;
229
+ try {
230
+ let e = await a({
231
+ gateway: "workspace",
232
+ query: t,
233
+ operationName: "ReportMyAssistantTurnTimings",
234
+ variables: { input: {
235
+ nonce: n.nonce,
236
+ turns: n.turns
237
+ } },
238
+ authToken: i.authContext?.accessToken ?? void 0,
239
+ workspaceToken: !0,
240
+ workspaceId: i.workspaceId,
241
+ organizationId: i.authContext?.organizationId ?? !0,
242
+ suppressGlobalErrorEvent: !0,
243
+ skipAuthRetry: !0,
244
+ extraHeaders: { "x-request-id": `bf-assistant-${n.nonce}` },
245
+ ...n.keepalive ? { keepalive: !0 } : {}
246
+ });
247
+ if (y(e).some(g)) return x;
248
+ let r = v(e.data);
249
+ return r ? {
250
+ kind: "receipt",
251
+ receipt: r
252
+ } : b;
253
+ } catch (e) {
254
+ return r(e) || y(e).some(g) ? x : b;
255
+ }
256
+ }
257
+ var C = [], w = null, T = null;
258
+ function E() {
259
+ return typeof document < "u" && document?.visibilityState === "hidden";
260
+ }
261
+ function D(e) {
262
+ let t = typeof window > "u" ? null : window, n = typeof document > "u" ? null : document, r = () => e.flush({
263
+ final: !0,
264
+ keepalive: !0,
265
+ abandonRunning: !0
266
+ }), i = () => {
267
+ n?.visibilityState === "hidden" && e.flush({
268
+ final: !0,
269
+ keepalive: !0,
270
+ keepAwaitingAudio: !0
271
+ });
272
+ };
273
+ return t?.addEventListener?.("pagehide", r), n?.addEventListener?.("freeze", r), n?.addEventListener?.("visibilitychange", i), () => {
274
+ t?.removeEventListener?.("pagehide", r), n?.removeEventListener?.("freeze", r), n?.removeEventListener?.("visibilitychange", i);
275
+ };
276
+ }
277
+ function O() {
278
+ return C[C.length - 1]?.send ?? w;
279
+ }
280
+ function k() {
281
+ let e = () => void 0, t = () => void 0, n = !1, r = {
282
+ reporter: m({
283
+ send: (e) => {
284
+ let t = O();
285
+ return t ? t(e) : Promise.resolve(b);
286
+ },
287
+ onSupported: () => i("turnTimings"),
288
+ isPageHidden: E,
289
+ onUnsupported: () => {
290
+ a("turnTimings"), T === r && (T = null), r.release();
291
+ }
292
+ }),
293
+ release: () => {
294
+ n || (n = !0, e(), t());
295
+ }
296
+ };
297
+ return e = o((e) => r.reporter.observe(e)), t = D(r.reporter), r;
298
+ }
299
+ var A = () => void 0;
300
+ function j(e) {
301
+ try {
302
+ if (n("turnTimings") === "unsupported") return A;
303
+ let t = { send: e.send };
304
+ C.push(t), T ||= k();
305
+ let r = !1;
306
+ return () => {
307
+ if (r) return;
308
+ r = !0;
309
+ let e = C.indexOf(t);
310
+ e >= 0 && C.splice(e, 1), w = t.send;
311
+ };
312
+ } catch {
313
+ return A;
314
+ }
315
+ }
316
+ function M() {
317
+ let e = T;
318
+ T = null, C.length = 0, w = null, e && (e.release(), e.reporter.dispose());
319
+ }
320
+ //#endregion
321
+ export { d as TURN_TIMING_REPORTING, f as createTurnTimingNonce, m as createTurnTimingReporter, M as resetTurnTimingReporting, S as sendAssistantTurnTimings, j as startTurnTimingReporting };
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAsIf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AA+EvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAktGxD,CAAC"}
1
+ {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AA4Jf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAkGvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAgqHxD,CAAC"}