@botuyo/chat-widget-standalone 1.4.1 → 1.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceCallOverlay.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/components/VoiceCallOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAML,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAOzB,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,CAAA;IAC5B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAA;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED,KAAK,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;AA4b9E,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,YAAwB,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,GACZ,EAAE,qBAAqB,kDAo/CvB"}
1
+ {"version":3,"file":"VoiceCallOverlay.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/components/VoiceCallOverlay.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoBH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAQL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAOzB,8CAA8C;AAC9C,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC/C,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACjD,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B;;;;;;;;;;OAUG;IACH,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,CAAA;IAC5B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAA;IACrB,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAA;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED,KAAK,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;AA4b9E,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,YAAwB,EACxB,SAAS,EACT,OAAO,EACP,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,GACZ,EAAE,qBAAqB,kDAkgDvB"}
@@ -117,6 +117,48 @@ export declare function resolveSpeechFlag(ctx: {
117
117
  confirmedSpeech: boolean;
118
118
  vadFresh: boolean;
119
119
  }): boolean;
120
+ /**
121
+ * Final upstream decision for a captured frame — combines the {@link VadGate} verdict with
122
+ * a deliberate "defer to the server-side VAD while the bot is idle" rule.
123
+ *
124
+ * WHILE THE BOT IS SPEAKING the gate is authoritative: that is exactly when echo / ambient
125
+ * noise must NOT self-interrupt the greeting, so we trust the gate's barge-in bar (plus the
126
+ * silent frame {@link resolveVadInput} feeds when there is no fresh real-VAD signal) to keep
127
+ * the half-duplex protection.
128
+ *
129
+ * WHILE THE BOT IS IDLE (the user's turn to talk) we stream EVERY frame and let the
130
+ * provider's own server-side VAD decide where speech starts/ends — the pre-VAD, "as it was"
131
+ * behavior. A client-side near-field energy threshold is unreliable across microphones and
132
+ * input gains (and is bypassed entirely when the Silero model can't load behind a strict
133
+ * network), and it was silently dropping the audio of legitimate, normal-volume users. Being
134
+ * heard must never depend on it, so when it's the user's turn the mic always reaches upstream.
135
+ */
136
+ export declare function resolveShouldStream(ctx: {
137
+ gateShouldStream: boolean;
138
+ botSpeaking: boolean;
139
+ }): boolean;
140
+ /**
141
+ * Ground-truth "is the bot AUDIBLY speaking right now?" used to drive the half-duplex
142
+ * gating. We deliberately do NOT rely solely on the `isPlaying` flag: that flag is only
143
+ * cleared by an `onended` callback on the last scheduled audio source, and if that callback
144
+ * never fires (a suspended/closed `AudioContext`, a stalled or stopped source, jitter) the
145
+ * flag gets STUCK at `true` — which would keep the gate authoritative forever and silence
146
+ * the user even though the bot has long finished. Instead we cross-check the playback
147
+ * schedule against the audio clock:
148
+ *
149
+ * - If nothing is playing (`isPlaying` false) → not speaking.
150
+ * - If there is no running `AudioContext` → nothing can be audible → not speaking.
151
+ * - Otherwise the bot is speaking only while the gapless schedule cursor (`nextPlayTime`)
152
+ * is still AHEAD of the context clock (`currentTime`). Once the clock passes the cursor,
153
+ * every scheduled chunk has elapsed → the bot is done and the user must be heard again,
154
+ * regardless of whether `onended` fired.
155
+ */
156
+ export declare function resolveBotSpeaking(ctx: {
157
+ isPlaying: boolean;
158
+ contextRunning: boolean;
159
+ nextPlayTime: number;
160
+ currentTime: number;
161
+ }): boolean;
120
162
  /**
121
163
  * Stateful speech gate. Feed it one analysed frame at a time via {@link process};
122
164
  * it returns whether to stream the frame plus any transition event.
@@ -1 +1 @@
1
- {"version":3,"file":"vadGate.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/voice/vadGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,YAAY,GAAG,UAAU,CAAA;AAErE,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,uBAAuB,EAAE,MAAM,CAAA;IAC/B,yFAAyF;IACzF,uBAAuB,EAAE,MAAM,CAAA;IAC/B,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB,qFAAqF;IACrF,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,0FAA0F;IAC1F,gBAAgB,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACvB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAA;IAClB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAA;IACX,6EAA6E;IAC7E,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAA;IACrB,8CAA8C;IAC9C,KAAK,EAAE,YAAY,CAAA;IACnB,uDAAuD;IACvD,KAAK,CAAC,EAAE,YAAY,CAAA;CACrB;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,KAAK,GAAG,UAAU,GAAG,MAAM,EAAE,aAAa,CAyB/E,CAAA;AAED,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAKjF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAQ5E;AAED,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,WAAW,EAAE,OAAO,CAAA;IACpB,sFAAsF;IACtF,QAAQ,EAAE,OAAO,CAAA;IACjB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAYnG;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAE/F;AAED;;;GAGG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,eAAe,CAAI;gBAEf,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,qDAAqD;IACrD,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa;IAMvC,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,aAAa;CAqBtB"}
1
+ {"version":3,"file":"vadGate.d.ts","sourceRoot":"","sources":["../../../../src/chat-widget/voice/vadGate.ts"],"names":[],"mappings":"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"}