@burdenoff/fe-libs 2026.1004.3 → 2026.1004.5

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 (79) hide show
  1. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts +9 -0
  2. package/dist/chrome/mobileTabBar/useVisibleNavItems.d.ts.map +1 -1
  3. package/dist/chrome/mobileTabBar/useVisibleNavItems.js +3 -1
  4. package/dist/shared/assistant/api.d.ts +6 -0
  5. package/dist/shared/assistant/api.d.ts.map +1 -1
  6. package/dist/shared/assistant/api.js +5 -3
  7. package/dist/shared/assistant/i18nManifest.d.ts +13 -0
  8. package/dist/shared/assistant/i18nManifest.d.ts.map +1 -1
  9. package/dist/shared/assistant/i18nManifest.js +25 -12
  10. package/dist/shared/assistant/index.d.ts +11 -0
  11. package/dist/shared/assistant/index.d.ts.map +1 -1
  12. package/dist/shared/assistant/localUiCommandCopy.d.ts +18 -0
  13. package/dist/shared/assistant/localUiCommandCopy.d.ts.map +1 -1
  14. package/dist/shared/assistant/localUiCommandCopy.js +22 -2
  15. package/dist/shared/assistant/localUiCommands.d.ts +63 -26
  16. package/dist/shared/assistant/localUiCommands.d.ts.map +1 -1
  17. package/dist/shared/assistant/localUiCommands.js +128 -59
  18. package/dist/shared/assistant/store.d.ts +10 -0
  19. package/dist/shared/assistant/store.d.ts.map +1 -1
  20. package/dist/shared/assistant/store.js +52 -44
  21. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  22. package/dist/shared/assistant/ui/AssistantChatArea.js +1023 -874
  23. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +3 -34
  24. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts.map +1 -1
  25. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +83 -119
  26. package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
  27. package/dist/shared/assistant/ui/AssistantMoreMenu.js +58 -56
  28. package/dist/shared/assistant/ui/AssistantSpeechProvider.d.ts.map +1 -1
  29. package/dist/shared/assistant/ui/AssistantSpeechProvider.js +106 -105
  30. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.js +2 -1
  31. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts +20 -0
  32. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.d.ts.map +1 -0
  33. package/dist/shared/assistant/ui/composer/AssistantVoiceGraceSelector.js +39 -0
  34. package/dist/shared/assistant/ui/composer/connectSource.js +2 -1
  35. package/dist/shared/assistant/ui/useVoiceSession.d.ts +35 -2
  36. package/dist/shared/assistant/ui/useVoiceSession.d.ts.map +1 -1
  37. package/dist/shared/assistant/ui/useVoiceSession.js +232 -171
  38. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +15 -1
  39. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.js +121 -101
  41. package/dist/shared/assistant/uiActions/assistantHref.d.ts +36 -0
  42. package/dist/shared/assistant/uiActions/assistantHref.d.ts.map +1 -0
  43. package/dist/shared/assistant/uiActions/assistantHref.js +46 -0
  44. package/dist/shared/assistant/uiActions/deixis.d.ts +29 -0
  45. package/dist/shared/assistant/uiActions/deixis.d.ts.map +1 -0
  46. package/dist/shared/assistant/uiActions/deixis.js +54 -0
  47. package/dist/shared/assistant/uiActions/entityRoutes.d.ts +49 -0
  48. package/dist/shared/assistant/uiActions/entityRoutes.d.ts.map +1 -0
  49. package/dist/shared/assistant/uiActions/entityRoutes.js +53 -0
  50. package/dist/shared/assistant/uiActions/inAppLinks.d.ts +28 -0
  51. package/dist/shared/assistant/uiActions/inAppLinks.d.ts.map +1 -0
  52. package/dist/shared/assistant/uiActions/inAppLinks.js +51 -0
  53. package/dist/shared/assistant/uiActions/linkContext.d.ts +52 -0
  54. package/dist/shared/assistant/uiActions/linkContext.d.ts.map +1 -0
  55. package/dist/shared/assistant/uiActions/linkContext.js +60 -0
  56. package/dist/shared/assistant/uiActions/recordNames.d.ts +73 -0
  57. package/dist/shared/assistant/uiActions/recordNames.d.ts.map +1 -0
  58. package/dist/shared/assistant/uiActions/recordNames.js +75 -0
  59. package/dist/shared/assistant/uiActions/resolveTarget.d.ts +43 -0
  60. package/dist/shared/assistant/uiActions/resolveTarget.d.ts.map +1 -0
  61. package/dist/shared/assistant/uiActions/resolveTarget.js +49 -0
  62. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts +30 -0
  63. package/dist/shared/assistant/uiActions/uiCatalogue.d.ts.map +1 -0
  64. package/dist/shared/assistant/uiActions/uiCatalogue.js +22 -0
  65. package/dist/shared/assistant/voice/handsFree.d.ts +160 -0
  66. package/dist/shared/assistant/voice/handsFree.d.ts.map +1 -0
  67. package/dist/shared/assistant/voice/handsFree.js +104 -0
  68. package/dist/shared/assistant/voice/supersededTurns.d.ts +29 -0
  69. package/dist/shared/assistant/voice/supersededTurns.d.ts.map +1 -0
  70. package/dist/shared/assistant/voice/supersededTurns.js +17 -0
  71. package/dist/shared/assistant/voice/useVoiceInput.d.ts +7 -0
  72. package/dist/shared/assistant/voice/useVoiceInput.d.ts.map +1 -1
  73. package/dist/shared/assistant/voice/useVoiceInput.js +13 -10
  74. package/dist/shared/assistant/voice/voiceSession.d.ts +64 -20
  75. package/dist/shared/assistant/voice/voiceSession.d.ts.map +1 -1
  76. package/dist/shared/assistant/voice/voiceSession.js +120 -67
  77. package/dist/shared/components/assistantWidget/MessageContent.js +4 -3
  78. package/dist/shared-assistant.js +206 -195
  79. package/package.json +3 -1
@@ -1,20 +1,21 @@
1
+ import { mergeFinalPhrase as e, planThinkingSpeech as t, stripSubmittedPrefix as n } from "./handsFree.js";
1
2
  //#region src/shared/assistant/voice/voiceSession.ts
2
- var e = 2e3, t = 800, n = 1500, r = 500;
3
- function i(e) {
3
+ var r = 800, i = 1500, a = 500;
4
+ function o(e) {
4
5
  return e.trim().length > 0;
5
6
  }
6
- function a(e) {
7
+ function s(e) {
7
8
  return `${e.pending} ${e.interim}`.replace(/\s+/g, " ").trim();
8
9
  }
9
- var o = {
10
+ var c = {
10
11
  text: "",
11
12
  at: null
12
- }, s = (e) => e ? e.split(" ").length : 0;
13
- function c(e, t, n) {
14
- let r = a(t);
15
- if (!r) return o;
13
+ }, l = (e) => e ? e.split(" ").length : 0;
14
+ function u(e, t, n) {
15
+ let r = s(t);
16
+ if (!r) return c;
16
17
  let i = r.toLowerCase().replace(/[^\p{L}\p{M}\p{N}]+/gu, " ").trim();
17
- return i === e.text || e.text.startsWith(i) ? e : t.interim.trim() === "" && s(i) <= s(e.text) ? {
18
+ return i === e.text || e.text.startsWith(i) ? e : t.interim.trim() === "" && l(i) <= l(e.text) ? {
18
19
  text: i,
19
20
  at: e.at
20
21
  } : {
@@ -22,120 +23,169 @@ function c(e, t, n) {
22
23
  at: n
23
24
  };
24
25
  }
25
- function l(e) {
26
+ function d(e) {
26
27
  return e.toLowerCase().replace(/[^\p{L}\p{N}]+/gu, " ").trim();
27
28
  }
28
- var u = 3;
29
- function d(e, t) {
29
+ var f = 3;
30
+ function p(e, t) {
30
31
  if (!t) return !1;
31
- let n = l(e);
32
- return n.length === 0 ? !0 : n.split(" ").length < u ? !1 : ` ${l(t)} `.includes(` ${n} `);
32
+ let n = d(e);
33
+ return n.length === 0 ? !0 : n.split(" ").length < f ? !1 : ` ${d(t)} `.includes(` ${n} `);
33
34
  }
34
- function f(e, t, n) {
35
+ function m(e, t, n, r = !1) {
35
36
  return !e || e === n ? {
36
37
  claim: !1,
37
38
  advance: !1
39
+ } : r ? {
40
+ claim: !0,
41
+ advance: !1
38
42
  } : {
39
43
  claim: !0,
40
44
  advance: t === "thinking"
41
45
  };
42
46
  }
43
- var p = Object.freeze({
47
+ var h = Object.freeze({
44
48
  phase: "idle",
45
49
  muted: !1,
46
50
  pending: "",
47
51
  interim: "",
48
- error: null
49
- });
50
- function m(e, t, n = null) {
51
- if (t.type === "start") return {
52
- ...p,
52
+ error: null,
53
+ submitted: "",
54
+ submittedAt: null,
55
+ correcting: !1,
56
+ superseded: 0
57
+ }), g = {
58
+ submitted: "",
59
+ submittedAt: null,
60
+ correcting: !1
61
+ };
62
+ function _(e, n, r) {
63
+ if (p(n.transcript, r)) return e;
64
+ let i = t({
65
+ transcript: n.transcript,
66
+ submitted: e.submitted,
67
+ sinceSubmitMs: n.at !== void 0 && e.submittedAt !== null ? n.at - e.submittedAt : null
68
+ });
69
+ if (i.kind === "ignore") return e;
70
+ let a = i.text.replace(/\s+/g, " ").trim();
71
+ return {
72
+ ...e,
73
+ phase: "listening",
74
+ correcting: !0,
75
+ superseded: e.superseded + 1,
76
+ pending: n.final ? a : "",
77
+ interim: n.final ? "" : a
78
+ };
79
+ }
80
+ function v(t, r, i = null) {
81
+ if (r.type === "start") return {
82
+ ...h,
53
83
  phase: "listening"
54
84
  };
55
- if (t.type === "end") return {
56
- ...e,
85
+ if (r.type === "end") return {
86
+ ...t,
87
+ ...g,
57
88
  phase: "ended",
58
89
  pending: "",
59
90
  interim: "",
60
91
  error: null
61
92
  };
62
- if (e.phase === "ended") return e;
63
- if (t.type === "fail") return {
64
- ...e,
93
+ if (t.phase === "ended") return t;
94
+ if (r.type === "fail") return {
95
+ ...t,
96
+ ...g,
65
97
  phase: "ended",
66
98
  pending: "",
67
99
  interim: "",
68
- error: t.error
100
+ error: r.error
69
101
  };
70
- switch (t.type) {
102
+ switch (r.type) {
71
103
  case "mute": return {
72
- ...e,
73
- muted: t.muted,
74
- ...t.muted ? {
104
+ ...t,
105
+ muted: r.muted,
106
+ ...r.muted ? {
75
107
  pending: "",
76
108
  interim: ""
77
109
  } : {}
78
110
  };
79
- case "interrupt": return e.phase === "speaking" || e.phase === "thinking" ? {
80
- ...e,
111
+ case "interrupt": return t.phase === "speaking" || t.phase === "thinking" ? {
112
+ ...t,
113
+ ...g,
81
114
  phase: "listening",
82
115
  pending: "",
83
116
  interim: ""
84
- } : e;
85
- case "speech": return e.muted || e.phase !== "listening" || d(t.transcript, n) ? e : t.final ? {
86
- ...e,
87
- pending: `${e.pending} ${t.transcript}`.replace(/\s+/g, " ").trim(),
88
- interim: ""
89
- } : {
90
- ...e,
91
- interim: t.transcript
117
+ } : t;
118
+ case "speech": {
119
+ if (t.muted) return t;
120
+ if (t.phase === "thinking") return _(t, r, i);
121
+ if (t.phase !== "listening" || p(r.transcript, i)) return t;
122
+ let a = t.correcting ? n(r.transcript, t.submitted) : r.transcript;
123
+ if (t.correcting && a === "") return t;
124
+ if (r.final) {
125
+ let n = e(t.pending, a);
126
+ return n === t.pending && t.interim === "" ? t : {
127
+ ...t,
128
+ pending: n,
129
+ interim: ""
130
+ };
131
+ }
132
+ return a === t.interim ? t : {
133
+ ...t,
134
+ interim: a
135
+ };
136
+ }
137
+ case "silence": return t.phase !== "listening" || t.muted || !o(s(t)) ? t : {
138
+ ...t,
139
+ phase: "thinking",
140
+ submitted: s(t),
141
+ submittedAt: r.at ?? null
92
142
  };
93
- case "silence": return e.phase !== "listening" || e.muted || !i(a(e)) ? e : {
94
- ...e,
95
- phase: "thinking"
96
- };
97
- case "reply": return e.phase === "thinking" ? {
98
- ...e,
143
+ case "reply": return t.phase === "thinking" ? {
144
+ ...t,
145
+ ...g,
99
146
  phase: "speaking",
100
147
  pending: "",
101
148
  interim: ""
102
- } : e;
103
- case "reply-audio-started": return e.phase === "thinking" ? {
104
- ...e,
149
+ } : t;
150
+ case "reply-audio-started": return t.phase === "thinking" ? {
151
+ ...t,
152
+ ...g,
105
153
  phase: "speaking",
106
154
  pending: "",
107
155
  interim: ""
108
- } : e;
109
- case "speech-ended": return e.phase === "speaking" ? {
110
- ...e,
156
+ } : t;
157
+ case "speech-ended": return t.phase === "speaking" ? {
158
+ ...t,
159
+ ...g,
111
160
  phase: "listening",
112
161
  pending: "",
113
162
  interim: ""
114
- } : e;
115
- case "answered-locally": return e.phase === "thinking" ? {
116
- ...e,
163
+ } : t;
164
+ case "answered-locally": return t.phase === "thinking" ? {
165
+ ...t,
166
+ ...g,
117
167
  phase: "speaking",
118
168
  pending: "",
119
169
  interim: ""
120
- } : e;
121
- case "announce": return e.phase === "listening" && a(e) === "" ? {
122
- ...e,
170
+ } : t;
171
+ case "announce": return t.phase === "listening" && s(t) === "" ? {
172
+ ...t,
123
173
  phase: "speaking",
124
174
  pending: "",
125
175
  interim: ""
126
- } : e;
127
- default: return e;
176
+ } : t;
177
+ default: return t;
128
178
  }
129
179
  }
130
- function h(e) {
180
+ function y(e) {
131
181
  switch (e.phase) {
132
- case "listening": return a(e) === "" ? "start" : "drop";
182
+ case "listening": return s(e) === "" ? "start" : "drop";
133
183
  case "thinking":
134
184
  case "speaking": return "queue";
135
185
  default: return "drop";
136
186
  }
137
187
  }
138
- function g(e) {
188
+ function b(e) {
139
189
  let { requested: t, held: n, muted: r } = e;
140
190
  return t ? n ? {
141
191
  mute: null,
@@ -154,10 +204,13 @@ function g(e) {
154
204
  held: !1
155
205
  };
156
206
  }
157
- function _(e) {
207
+ function x(e) {
158
208
  return e.muted ? !1 : e.phase === "listening";
159
209
  }
160
- function v(e) {
210
+ function S(e) {
211
+ return e.muted ? !1 : e.phase === "listening" || e.phase === "thinking";
212
+ }
213
+ function C(e) {
161
214
  switch (e.phase) {
162
215
  case "thinking": return "thinking";
163
216
  case "speaking": return "speaking";
@@ -166,4 +219,4 @@ function v(e) {
166
219
  }
167
220
  }
168
221
  //#endregion
169
- export { t as ENDPOINT_GRACE_MS, p as INITIAL_SESSION, n as INTERRUPT_MAX_MS, r as INTERRUPT_MIN_MS, o as NOTHING_HEARD, e as SILENCE_SUBMIT_MS, c as advanceHeardClock, _ as isCapturing, d as isEcho, i as isSubmittable, v as orbMode, g as planListeningHold, f as planReplyConsumption, h as planVoiceAnnouncement, a as spokenSoFar, m as voiceSessionReducer };
222
+ export { r as ENDPOINT_GRACE_MS, h as INITIAL_SESSION, i as INTERRUPT_MAX_MS, a as INTERRUPT_MIN_MS, c as NOTHING_HEARD, u as advanceHeardClock, x as isCapturing, p as isEcho, o as isSubmittable, C as orbMode, b as planListeningHold, m as planReplyConsumption, y as planVoiceAnnouncement, S as shouldRecognise, s as spokenSoFar, v as voiceSessionReducer };
@@ -1,4 +1,5 @@
1
- import { assistantRoutePath as e, browserShouldHandle as t, classifyAssistantHref as n } from "../../assistant/ui/AssistantMarkdownRenderer.js";
1
+ import { assistantRoutePath as e, classifyAssistantHref as t } from "../../assistant/uiActions/assistantHref.js";
2
+ import { browserShouldHandle as n } from "../../assistant/ui/AssistantMarkdownRenderer.js";
2
3
  import { Fragment as r } from "react";
3
4
  import { Fragment as i, jsx as a } from "react/jsx-runtime";
4
5
  //#region src/shared/components/assistantWidget/MessageContent.tsx
@@ -11,12 +12,12 @@ var c = ({ content: c, onNavigate: l }) => {
11
12
  for (let i of c.matchAll(f)) {
12
13
  let [o, f, p] = i, m = i.index ?? 0;
13
14
  m > d && u.push(/* @__PURE__ */ a(r, { children: c.slice(d, m) }, `t${String(d)}`));
14
- let h = p ? n(p) : "blocked", g = h === "internal" ? e(p) : null, _ = h === "external" && s(p);
15
+ let h = p ? t(p) : "blocked", g = h === "internal" ? e(p) : null, _ = h === "external" && s(p);
15
16
  f && p && (g || _) ? u.push(/* @__PURE__ */ a("a", {
16
17
  href: g ?? p,
17
18
  "data-testid": "assistant-message-link",
18
19
  ...g ? { onClick: l ? (e) => {
19
- t(e) || (e.preventDefault(), l(g));
20
+ n(e) || (e.preventDefault(), l(g));
20
21
  } : void 0 } : {
21
22
  target: "_blank",
22
23
  rel: "noopener noreferrer"