@lautmaler/jovo-platform-aiflow 0.2.6 → 0.2.8

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 (59) hide show
  1. package/README.md +133 -2
  2. package/dist/cjs/AiflowInput.js.map +1 -1
  3. package/dist/cjs/BargeInHelper.js +53 -0
  4. package/dist/cjs/BargeInHelper.js.map +1 -0
  5. package/dist/cjs/SipgateAiflowAsync.js +16 -0
  6. package/dist/cjs/SipgateAiflowAsync.js.map +1 -1
  7. package/dist/cjs/SipgateAiflowPlatform.js +13 -0
  8. package/dist/cjs/SipgateAiflowPlatform.js.map +1 -1
  9. package/dist/cjs/SipgateAiflowRequest.js +5 -3
  10. package/dist/cjs/SipgateAiflowRequest.js.map +1 -1
  11. package/dist/cjs/SipgateAiflowSession.js +15 -0
  12. package/dist/cjs/SipgateAiflowSession.js.map +1 -1
  13. package/dist/cjs/aiflow-types.js +1 -0
  14. package/dist/cjs/aiflow-types.js.map +1 -1
  15. package/dist/cjs/index.js +1 -0
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/tsconfig.build.cjs.tsbuildinfo +1 -1
  18. package/dist/esm2015/AiflowInput.js.map +1 -1
  19. package/dist/esm2015/BargeInHelper.js +49 -0
  20. package/dist/esm2015/BargeInHelper.js.map +1 -0
  21. package/dist/esm2015/SipgateAiflowAsync.js +16 -0
  22. package/dist/esm2015/SipgateAiflowAsync.js.map +1 -1
  23. package/dist/esm2015/SipgateAiflowPlatform.js +13 -0
  24. package/dist/esm2015/SipgateAiflowPlatform.js.map +1 -1
  25. package/dist/esm2015/SipgateAiflowRequest.js +5 -3
  26. package/dist/esm2015/SipgateAiflowRequest.js.map +1 -1
  27. package/dist/esm2015/SipgateAiflowSession.js +15 -0
  28. package/dist/esm2015/SipgateAiflowSession.js.map +1 -1
  29. package/dist/esm2015/aiflow-types.js +1 -0
  30. package/dist/esm2015/aiflow-types.js.map +1 -1
  31. package/dist/esm2015/index.js +1 -0
  32. package/dist/esm2015/index.js.map +1 -1
  33. package/dist/esm2015/tsconfig.build.esm2015.tsbuildinfo +1 -1
  34. package/dist/esm5/AiflowInput.js.map +1 -1
  35. package/dist/esm5/BargeInHelper.js +49 -0
  36. package/dist/esm5/BargeInHelper.js.map +1 -0
  37. package/dist/esm5/SipgateAiflowAsync.js +16 -0
  38. package/dist/esm5/SipgateAiflowAsync.js.map +1 -1
  39. package/dist/esm5/SipgateAiflowPlatform.js +13 -0
  40. package/dist/esm5/SipgateAiflowPlatform.js.map +1 -1
  41. package/dist/esm5/SipgateAiflowRequest.js +5 -3
  42. package/dist/esm5/SipgateAiflowRequest.js.map +1 -1
  43. package/dist/esm5/SipgateAiflowSession.js +15 -0
  44. package/dist/esm5/SipgateAiflowSession.js.map +1 -1
  45. package/dist/esm5/aiflow-types.js +1 -0
  46. package/dist/esm5/aiflow-types.js.map +1 -1
  47. package/dist/esm5/index.js +1 -0
  48. package/dist/esm5/index.js.map +1 -1
  49. package/dist/esm5/tsconfig.build.esm5.tsbuildinfo +1 -1
  50. package/dist/sample-requests/UserSpeakBargedIn.json +10 -0
  51. package/dist/types/AiflowInput.d.ts +1 -0
  52. package/dist/types/BargeInHelper.d.ts +13 -0
  53. package/dist/types/SipgateAiflowAsync.d.ts +3 -0
  54. package/dist/types/SipgateAiflowRequest.d.ts +1 -0
  55. package/dist/types/SipgateAiflowSession.d.ts +3 -0
  56. package/dist/types/aiflow-types.d.ts +2 -0
  57. package/dist/types/index.d.ts +1 -0
  58. package/dist/types/tsconfig.build.types.tsbuildinfo +1 -1
  59. package/package.json +1 -1
package/README.md CHANGED
@@ -38,8 +38,11 @@ The platform handles all Sipgate AI Flow event types and maps them to Jovo's inp
38
38
  | `user_speak` | User speech detected | `InputType.USER_SPEAK` |
39
39
  | `assistant_speak` | Assistant finished speaking | `InputType.ASSISTANT_SPEAK` |
40
40
  | `user_barge_in` | User interrupted assistant | `InputType.USER_BARGE_IN` |
41
+ | `user_speak` (with `barged_in: true`) | User spoke over assistant | `InputType.USER_BARGE_IN` |
41
42
  | `session_end` | Call session ends | `InputType.SESSION_END` |
42
43
 
44
+ **Note:** Barge-in events can arrive either as a dedicated `user_barge_in` event or as a regular `user_speak` event with `barged_in: true`. Both are mapped to `InputType.USER_BARGE_IN` automatically, so your handler covers both cases.
45
+
43
46
  ### Handling Events
44
47
 
45
48
  ```typescript
@@ -72,7 +75,7 @@ export class GlobalComponent extends BaseComponent {
72
75
  })
73
76
  userBargeIn() {
74
77
  console.log('User interrupted during playback');
75
- // Handle interruption
78
+ // Handle interruption — see "Barge-In Handling" section below
76
79
  }
77
80
  }
78
81
  ```
@@ -240,6 +243,132 @@ handleBargeIn() {
240
243
  **Options:**
241
244
  - `sessionId` (string, required): Session identifier
242
245
 
246
+ ## Barge-In Handling
247
+
248
+ Barge-in occurs when a caller interrupts the assistant while it's speaking. The platform provides tools for both configuring when barge-in is allowed and handling the interruption intelligently.
249
+
250
+ ### Barge-In Strategies
251
+
252
+ Configure how sensitive barge-in detection should be via `BargeInConfig`:
253
+
254
+ | Strategy | Latency | Reliability | Use Case |
255
+ |----------|---------|-------------|----------|
256
+ | `immediate` | 20-100ms | May trigger on noise | Natural conversations |
257
+ | `minimum_characters` | 50-200ms | Very reliable | Balanced approach (recommended) |
258
+ | `manual` | N/A | Perfect | Custom logic |
259
+ | `none` | N/A | Perfect | Critical info only (legal disclaimers, confirmation codes) |
260
+
261
+ ```typescript
262
+ import { BargeInStrategy } from '@lautmaler/jovo-platform-aiflow';
263
+
264
+ // Most natural — triggers on voice detection
265
+ { strategy: BargeInStrategy.IMMEDIATE, allow_after_ms: 500 }
266
+
267
+ // Balanced — waits for a few characters
268
+ { strategy: BargeInStrategy.MINIMUM_CHARACTERS, minimum_characters: 3 }
269
+
270
+ // For critical information — higher threshold
271
+ { strategy: BargeInStrategy.MINIMUM_CHARACTERS, minimum_characters: 10, allow_after_ms: 3000 }
272
+
273
+ // No interruption allowed
274
+ { strategy: BargeInStrategy.NONE }
275
+ ```
276
+
277
+ The `allow_after_ms` option prevents accidental triggers during the first milliseconds of playback.
278
+
279
+ ### Classifying Barge-In Intent
280
+
281
+ Use `BargeInHelper` to classify what the user meant by their interruption:
282
+
283
+ ```typescript
284
+ import { BargeInHelper, BargeInIntent } from '@lautmaler/jovo-platform-aiflow';
285
+
286
+ @Handle({ types: [InputType.USER_BARGE_IN] })
287
+ handleBargeIn() {
288
+ const text = this.$request.getInputText();
289
+ const intent = BargeInHelper.classify(text);
290
+
291
+ switch (intent) {
292
+ case BargeInIntent.NOISE:
293
+ case BargeInIntent.STOP:
294
+ // Short noise or "stop"/"quiet" — return empty (204)
295
+ return this.$send(EmptyOutput);
296
+
297
+ case BargeInIntent.ACKNOWLEDGMENT:
298
+ // "Got it", "okay", "yes" — brief follow-up
299
+ return this.$send(SpeakOutput, { message: 'Great! What else can I help with?' });
300
+
301
+ case BargeInIntent.REDIRECT:
302
+ // "Actually", "wait", "hold on" — let user continue
303
+ return this.$send(SpeakOutput, { message: 'Sure, go ahead.' });
304
+
305
+ case BargeInIntent.CORRECTION:
306
+ case BargeInIntent.NEW_QUESTION:
307
+ // Substantial input (>25 chars or contains "?") — process as new input
308
+ // Re-route to your normal speech handling logic
309
+ return this.handleUserInput(text);
310
+ }
311
+ }
312
+ ```
313
+
314
+ Convenience methods:
315
+ - `BargeInHelper.shouldSilentAcknowledge(text)` — returns `true` for noise/stop (return 204)
316
+ - `BargeInHelper.isSubstantialInput(text)` — returns `true` for new questions/corrections (process normally)
317
+
318
+ ### Tracking Impatient Users
319
+
320
+ The session automatically tracks how many times a user has barged in via `bargeInCount`. Use this to adapt response brevity:
321
+
322
+ ```typescript
323
+ @Handle({ types: [InputType.USER_BARGE_IN] })
324
+ handleBargeIn() {
325
+ const session = this.$session as SipgateAiflowSession;
326
+ const text = this.$request.getInputText();
327
+
328
+ // Frequent interrupters get shorter responses
329
+ if (session.bargeInCount > 3) {
330
+ if (BargeInHelper.shouldSilentAcknowledge(text)) {
331
+ return this.$send(EmptyOutput);
332
+ }
333
+ return this.$send(SpeakOutput, { message: 'Yes?' });
334
+ }
335
+
336
+ // Normal barge-in handling for patient users
337
+ // ...
338
+ }
339
+ ```
340
+
341
+ ### Checking barged_in on Input
342
+
343
+ The `barged_in` flag is available on `AiflowInput` for any handler that needs to know if the current input was an interruption:
344
+
345
+ ```typescript
346
+ const input = this.$input as AiflowInput;
347
+ if (input.barged_in) {
348
+ // This input interrupted the assistant
349
+ }
350
+ ```
351
+
352
+ ### Cancelling Async Operations
353
+
354
+ When using async mode (`SipgateAiflowAsync`), cancel pending operations on barge-in so the user isn't waiting for stale responses:
355
+
356
+ ```typescript
357
+ @Handle({ types: [InputType.USER_BARGE_IN] })
358
+ handleBargeIn() {
359
+ if (this.jovo instanceof SipgateAiflowAsync) {
360
+ this.jovo.cancelPendingOperations();
361
+ }
362
+ // Handle the interruption...
363
+ }
364
+ ```
365
+
366
+ Use `this.jovo.abortSignal` in your own async operations to respect cancellation:
367
+
368
+ ```typescript
369
+ const response = await fetch(url, { signal: this.jovo.abortSignal });
370
+ ```
371
+
243
372
  ## Session Information
244
373
 
245
374
  Session information from Sipgate AI Flow is available via `this.$session.sessionInfo`:
@@ -275,6 +404,7 @@ interface SipgateAiflowConfig {
275
404
  debug?: boolean; // Enable debug logging
276
405
  tts?: TtsConfig; // Default TTS provider settings
277
406
  bargeIn?: BargeInConfig; // Default barge-in configuration
407
+ userInputTimeoutSec: number; // Timeout for user input (default: 4)
278
408
  asyncOutput?: boolean; // Enable/disable async output (auto-detects by default)
279
409
  plugins?: Plugin[]; // Additional platform-specific plugins
280
410
  }
@@ -559,7 +689,8 @@ Example event payloads can be found in the `sample-requests/` directory:
559
689
  - `SessionStart.json` - Call session begins
560
690
  - `UserSpeak.json` - User speech detected
561
691
  - `AssistantSpeak.json` - Assistant finished speaking
562
- - `UserBargeIn.json` - User interrupted assistant
692
+ - `UserBargeIn.json` - User interrupted assistant (dedicated event)
693
+ - `UserSpeakBargedIn.json` - User speech with `barged_in` flag
563
694
  - `SessionEnd.json` - Call session ends
564
695
 
565
696
  ## Links
@@ -1 +1 @@
1
- {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":";;;AAAA,mDAA0F;AAG1F,MAAa,WAAY,SAAQ,qBAAS;CAMzC;AAND,kCAMC;AAED,MAAa,kBAAkB;IAE7B,YAAY,oBAA2C,8BAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAhBD,gDAgBC"}
1
+ {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":";;;AAAA,mDAA0F;AAG1F,MAAa,WAAY,SAAQ,qBAAS;CAOzC;AAPD,kCAOC;AAED,MAAa,kBAAkB;IAE7B,YAAY,oBAA2C,8BAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAhBD,gDAgBC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BargeInHelper = exports.BargeInIntent = void 0;
4
+ var BargeInIntent;
5
+ (function (BargeInIntent) {
6
+ BargeInIntent["ACKNOWLEDGMENT"] = "acknowledgment";
7
+ BargeInIntent["REDIRECT"] = "redirect";
8
+ BargeInIntent["CORRECTION"] = "correction";
9
+ BargeInIntent["NEW_QUESTION"] = "new_question";
10
+ BargeInIntent["STOP"] = "stop";
11
+ BargeInIntent["NOISE"] = "noise";
12
+ })(BargeInIntent || (exports.BargeInIntent = BargeInIntent = {}));
13
+ const ACKNOWLEDGMENT_PATTERNS = /\b(got it|understood|okay|ok|yes|yeah|yep|right|sure|alright|i see|makes sense)\b/i;
14
+ const REDIRECT_PATTERNS = /\b(actually|wait|hold on|never ?mind|instead|but)\b/i;
15
+ const CORRECTION_PATTERNS = /\b(no|not what i|i meant|i said|wrong|incorrect|that's not)\b/i;
16
+ const STOP_PATTERNS = /^(stop|quiet|shut up|be quiet|enough|silence)$/i;
17
+ class BargeInHelper {
18
+ static classify(text) {
19
+ if (!text || text.trim().length === 0) {
20
+ return BargeInIntent.NOISE;
21
+ }
22
+ const trimmed = text.trim();
23
+ if (trimmed.length < 3) {
24
+ return BargeInIntent.NOISE;
25
+ }
26
+ if (STOP_PATTERNS.test(trimmed)) {
27
+ return BargeInIntent.STOP;
28
+ }
29
+ if (trimmed.length > 25 || trimmed.includes('?')) {
30
+ return BargeInIntent.NEW_QUESTION;
31
+ }
32
+ if (CORRECTION_PATTERNS.test(trimmed)) {
33
+ return BargeInIntent.CORRECTION;
34
+ }
35
+ if (REDIRECT_PATTERNS.test(trimmed)) {
36
+ return BargeInIntent.REDIRECT;
37
+ }
38
+ if (ACKNOWLEDGMENT_PATTERNS.test(trimmed)) {
39
+ return BargeInIntent.ACKNOWLEDGMENT;
40
+ }
41
+ return BargeInIntent.NEW_QUESTION;
42
+ }
43
+ static shouldSilentAcknowledge(text) {
44
+ const intent = BargeInHelper.classify(text);
45
+ return intent === BargeInIntent.NOISE || intent === BargeInIntent.STOP;
46
+ }
47
+ static isSubstantialInput(text) {
48
+ const intent = BargeInHelper.classify(text);
49
+ return intent === BargeInIntent.NEW_QUESTION || intent === BargeInIntent.CORRECTION;
50
+ }
51
+ }
52
+ exports.BargeInHelper = BargeInHelper;
53
+ //# sourceMappingURL=BargeInHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BargeInHelper.js","sourceRoot":"","sources":["../../src/BargeInHelper.ts"],"names":[],"mappings":";;;AAAA,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAPW,aAAa,6BAAb,aAAa,QAOxB;AAED,MAAM,uBAAuB,GAAG,oFAAoF,CAAC;AACrH,MAAM,iBAAiB,GAAG,sDAAsD,CAAC;AACjF,MAAM,mBAAmB,GAAG,gEAAgE,CAAC;AAC7F,MAAM,aAAa,GAAG,iDAAiD,CAAC;AAExE,MAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAwB;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,aAAa,CAAC,YAAY,CAAC;QACpC,CAAC;QAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,cAAc,CAAC;QACtC,CAAC;QAED,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAwB;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,KAAK,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAwB;QAChD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,YAAY,IAAI,MAAM,KAAK,aAAa,CAAC,UAAU,CAAC;IACtF,CAAC;CACF;AA5CD,sCA4CC"}
@@ -3,7 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SipgateAiflowAsync = void 0;
4
4
  const framework_1 = require("@jovotech/framework");
5
5
  class SipgateAiflowAsync extends framework_1.AsyncJovo {
6
+ get abortSignal() {
7
+ if (!this._abortController) {
8
+ this._abortController = new AbortController();
9
+ }
10
+ return this._abortController.signal;
11
+ }
12
+ cancelPendingOperations() {
13
+ if (this._abortController) {
14
+ this._abortController.abort();
15
+ this._abortController = undefined;
16
+ }
17
+ }
6
18
  async sendResponse(response) {
19
+ var _a;
20
+ if ((_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
21
+ return;
22
+ }
7
23
  const server = this.$server;
8
24
  const ws = server.getWebSocket();
9
25
  if (ws.readyState === ws.OPEN) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAQhD,MAAa,kBAAmB,SAAQ,qBAOvC;IACW,KAAK,CAAC,YAAY,CAAC,QAA+B;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAfD,gDAeC"}
1
+ {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":";;;AAAA,mDAAgD;AAQhD,MAAa,kBAAmB,SAAQ,qBAOvC;IAGC,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAA+B;;QAC1D,IAAI,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AAlCD,gDAkCC"}
@@ -9,6 +9,7 @@ const SipgateAiflowDevice_1 = require("./SipgateAiflowDevice");
9
9
  const SipgateAiflowRequest_1 = require("./SipgateAiflowRequest");
10
10
  const SipgateAiflowRequestBuilder_1 = require("./SipgateAiflowRequestBuilder");
11
11
  const SipgateAiflowUser_1 = require("./SipgateAiflowUser");
12
+ const interfaces_1 = require("./interfaces");
12
13
  const server_1 = require("./server");
13
14
  class SipgateAiflowPlatform extends framework_1.Platform {
14
15
  constructor(config) {
@@ -37,6 +38,18 @@ class SipgateAiflowPlatform extends framework_1.Platform {
37
38
  jovo.$history.items = [];
38
39
  }
39
40
  });
41
+ // Auto-increment barge-in counter on barge-in events
42
+ this.middlewareCollection.use('before.dialogue.start', async (jovo) => {
43
+ const request = jovo.$request;
44
+ const isBargeIn = request.type === interfaces_1.SipgateInputType.USER_BARGE_IN ||
45
+ (request.type === interfaces_1.SipgateInputType.USER_SPEAK && request.barged_in === true);
46
+ if (isBargeIn) {
47
+ const session = jovo.$session;
48
+ if (typeof session.incrementBargeIn === 'function') {
49
+ session.incrementBargeIn();
50
+ }
51
+ }
52
+ });
40
53
  this.middlewareCollection.use('after.response.end', async (jovo) => {
41
54
  if (jovo instanceof SipgateAiflowAsync_1.SipgateAiflowAsync) {
42
55
  jovo.$response = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":";;;AAAA,mDAY6B;AAC7B,qCAAwE;AACxE,mDAAgD;AAChD,6DAA0D;AAC1D,+DAA4D;AAC5D,iEAA8D;AAC9D,+EAA4E;AAE5E,2DAAwD;AAKxD,qCAA2C;AA2B3C,MAAa,qBAAsB,SAAQ,oBAQ1C;IAWC,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAXP,OAAE,GAAW,gBAAgB,CAAC;QAC9B,cAAS,GAAuC,qCAAiB,CAAC;QAClE,gBAAW,GAAyC,yCAAmB,CAAC;QACjF,mFAAmF;QAC1E,mBAAc,GACrB,yDAA2B,CAAC;QACrB,oCAA+B,GAAG,IAAI,qDAA4C,EAAE,CAAC;QACrF,iBAAY,GAAsC,2CAAoB,CAAC;QACvE,cAAS,GAA+B,6BAAa,CAAC;IAI/D,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,mBAAmB,EAAE,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAqB;QACzB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,qFAAqF;QACrF,sFAAsF;QACtF,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;;YACxE,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,MAAK,IAAI,CAAC,IAAI,KAAI,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,YAAY,kDAAI,CAAA,EAAE,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;YACvE,IAAI,IAAI,YAAY,uCAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,GAAQ,EACR,aAA4B;;QAE5B,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,aAAa,CAAC,MAAM,YAAY,wBAAe,CAAC;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,uCAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,6BAAa,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,OAAyC;;QACxD,OAAO,OAAO,CAAC,GAAG,IAAI,iBAAiB,IAAI,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,EAAE,KAAI,IAAI,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,QAA2C;QAC3D,OAAO,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,gBAAgB,CACd,QAA+B,EAC/B,IAAmB;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAvED,sDAuEC"}
1
+ {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":"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"}
@@ -34,11 +34,12 @@ class SipgateAiflowRequest extends framework_1.JovoRequest {
34
34
  .build();
35
35
  }
36
36
  else if (this.type == interfaces_1.SipgateInputType.USER_SPEAK) {
37
- return new AiflowInput_1.AiflowInputBuilder()
38
- .set('type', interfaces_1.InputType.Text)
37
+ const builder = new AiflowInput_1.AiflowInputBuilder()
38
+ .set('type', this.barged_in ? interfaces_1.InputType.USER_BARGE_IN : interfaces_1.InputType.Text)
39
39
  .set('session', this.session)
40
40
  .set('text', this.text)
41
- .build();
41
+ .set('barged_in', this.barged_in || undefined);
42
+ return builder.build();
42
43
  }
43
44
  else if (this.type == interfaces_1.SipgateInputType.ASSISTANT_SPEAK) {
44
45
  return new AiflowInput_1.AiflowInputBuilder()
@@ -59,6 +60,7 @@ class SipgateAiflowRequest extends framework_1.JovoRequest {
59
60
  .set('type', interfaces_1.InputType.USER_BARGE_IN)
60
61
  .set('session', this.session)
61
62
  .set('text', this.text)
63
+ .set('barged_in', true)
62
64
  .build();
63
65
  }
64
66
  else if (this.type == interfaces_1.SipgateInputType.SESSION_END) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,23 @@ exports.SipgateAiflowSession = void 0;
4
4
  const framework_1 = require("@jovotech/framework");
5
5
  class SipgateAiflowSession extends framework_1.JovoSession {
6
6
  constructor(data) {
7
+ var _a;
7
8
  super(data);
9
+ this.bargeInCount = 0;
8
10
  this.sessionInfo = data === null || data === void 0 ? void 0 : data.sessionInfo;
11
+ this.bargeInCount = (_a = data === null || data === void 0 ? void 0 : data.bargeInCount) !== null && _a !== void 0 ? _a : 0;
12
+ }
13
+ incrementBargeIn() {
14
+ return ++this.bargeInCount;
15
+ }
16
+ setPersistableData(data, config) {
17
+ const currentId = this.id;
18
+ super.setPersistableData(data, config);
19
+ // Always use the session ID from the current request, not from the DB.
20
+ // Each sipgate call has its own session ID; the DB-loaded ID belongs to
21
+ // a previous call and must not overwrite it.
22
+ this.id = currentId;
23
+ return this;
9
24
  }
10
25
  }
11
26
  exports.SipgateAiflowSession = SipgateAiflowSession;
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAGlD,MAAa,oBAAqB,SAAQ,uBAAW;IAGnD,YAAY,IAAoC;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;IACvC,CAAC;CACF;AAPD,oDAOC"}
1
+ {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAGlD,MAAa,oBAAqB,SAAQ,uBAAW;IAKnD,YAAY,IAAoC;;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QAHd,iBAAY,GAAW,CAAC,CAAC;QAIvB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,IAAS,EAAE,MAAY;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,uEAAuE;QACvE,wEAAwE;QACxE,6CAA6C;QAC7C,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAxBD,oDAwBC"}
@@ -30,6 +30,7 @@ var TtsProvider;
30
30
  var BargeInStrategy;
31
31
  (function (BargeInStrategy) {
32
32
  BargeInStrategy["NONE"] = "none";
33
+ BargeInStrategy["IMMEDIATE"] = "immediate";
33
34
  BargeInStrategy["MANUAL"] = "manual";
34
35
  BargeInStrategy["MINIMUM_CHARACTERS"] = "minimum_characters";
35
36
  })(BargeInStrategy || (exports.BargeInStrategy = BargeInStrategy = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,8FAA8F;;;AAE9F,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,gCAAhB,gBAAgB,QAO3B;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B"}
1
+ {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,8FAA8F;;;AAE9F,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,gCAAhB,gBAAgB,QAO3B;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAED,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,0CAAuB,CAAA;IACvB,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EALW,eAAe,+BAAf,eAAe,QAK1B"}
package/dist/cjs/index.js CHANGED
@@ -37,6 +37,7 @@ __exportStar(require("./SipgateAiflowRequest"), exports);
37
37
  __exportStar(require("./SipgateAiflowResponse"), exports);
38
38
  __exportStar(require("./SipgateAiflowPlatform"), exports);
39
39
  __exportStar(require("./SipgateAiflowSession"), exports);
40
+ __exportStar(require("./BargeInHelper"), exports);
40
41
  __exportStar(require("./output"), exports);
41
42
  __exportStar(require("./interfaces"), exports);
42
43
  __exportStar(require("./server"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,sCAAsC;AACtC,+CAOwB;AANtB,+GAAA,eAAe,OAAA;AACf,2GAAA,WAAW,OAAA;AAOb,kDAAgC;AAChC,uDAAqC;AACrC,0DAAwC;AACxC,yDAAuC;AACvC,gEAA8C;AAC9C,0DAAwC;AACxC,+DAA6C;AAC7C,kEAAgD;AAChD,sDAAoC;AACpC,wDAAsC;AACtC,yDAAuC;AAyBvC,kDAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AACpC,yDAAuC;AACvC,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,sCAAsC;AACtC,+CAOwB;AANtB,+GAAA,eAAe,OAAA;AACf,2GAAA,WAAW,OAAA;AAOb,kDAAgC;AAChC,uDAAqC;AACrC,0DAAwC;AACxC,yDAAuC;AACvC,gEAA8C;AAC9C,0DAAwC;AACxC,+DAA6C;AAC7C,kEAAgD;AAChD,sDAAoC;AACpC,wDAAsC;AACtC,yDAAuC;AAyBvC,kDAAgC;AAChC,wDAAsC;AACtC,sDAAoC;AACpC,yDAAuC;AACvC,0DAAwC;AACxC,0DAAwC;AACxC,yDAAuC;AACvC,kDAAgC;AAChC,2CAAyB;AACzB,+CAA6B;AAC7B,2CAAyB"}
@@ -1 +1 @@
1
- {"root":["../../src/AiflowInput.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
1
+ {"root":["../../src/AiflowInput.ts","../../src/BargeInHelper.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
@@ -1 +1 @@
1
- {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1F,MAAM,OAAO,WAAY,SAAQ,SAAS;CAMzC;AAED,MAAM,OAAO,kBAAkB;IAE7B,YAAY,oBAA2C,kBAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1F,MAAM,OAAO,WAAY,SAAQ,SAAS;CAOzC;AAED,MAAM,OAAO,kBAAkB;IAE7B,YAAY,oBAA2C,kBAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ export var BargeInIntent;
2
+ (function (BargeInIntent) {
3
+ BargeInIntent["ACKNOWLEDGMENT"] = "acknowledgment";
4
+ BargeInIntent["REDIRECT"] = "redirect";
5
+ BargeInIntent["CORRECTION"] = "correction";
6
+ BargeInIntent["NEW_QUESTION"] = "new_question";
7
+ BargeInIntent["STOP"] = "stop";
8
+ BargeInIntent["NOISE"] = "noise";
9
+ })(BargeInIntent || (BargeInIntent = {}));
10
+ const ACKNOWLEDGMENT_PATTERNS = /\b(got it|understood|okay|ok|yes|yeah|yep|right|sure|alright|i see|makes sense)\b/i;
11
+ const REDIRECT_PATTERNS = /\b(actually|wait|hold on|never ?mind|instead|but)\b/i;
12
+ const CORRECTION_PATTERNS = /\b(no|not what i|i meant|i said|wrong|incorrect|that's not)\b/i;
13
+ const STOP_PATTERNS = /^(stop|quiet|shut up|be quiet|enough|silence)$/i;
14
+ export class BargeInHelper {
15
+ static classify(text) {
16
+ if (!text || text.trim().length === 0) {
17
+ return BargeInIntent.NOISE;
18
+ }
19
+ const trimmed = text.trim();
20
+ if (trimmed.length < 3) {
21
+ return BargeInIntent.NOISE;
22
+ }
23
+ if (STOP_PATTERNS.test(trimmed)) {
24
+ return BargeInIntent.STOP;
25
+ }
26
+ if (trimmed.length > 25 || trimmed.includes('?')) {
27
+ return BargeInIntent.NEW_QUESTION;
28
+ }
29
+ if (CORRECTION_PATTERNS.test(trimmed)) {
30
+ return BargeInIntent.CORRECTION;
31
+ }
32
+ if (REDIRECT_PATTERNS.test(trimmed)) {
33
+ return BargeInIntent.REDIRECT;
34
+ }
35
+ if (ACKNOWLEDGMENT_PATTERNS.test(trimmed)) {
36
+ return BargeInIntent.ACKNOWLEDGMENT;
37
+ }
38
+ return BargeInIntent.NEW_QUESTION;
39
+ }
40
+ static shouldSilentAcknowledge(text) {
41
+ const intent = BargeInHelper.classify(text);
42
+ return intent === BargeInIntent.NOISE || intent === BargeInIntent.STOP;
43
+ }
44
+ static isSubstantialInput(text) {
45
+ const intent = BargeInHelper.classify(text);
46
+ return intent === BargeInIntent.NEW_QUESTION || intent === BargeInIntent.CORRECTION;
47
+ }
48
+ }
49
+ //# sourceMappingURL=BargeInHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BargeInHelper.js","sourceRoot":"","sources":["../../src/BargeInHelper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,uBAAuB,GAAG,oFAAoF,CAAC;AACrH,MAAM,iBAAiB,GAAG,sDAAsD,CAAC;AACjF,MAAM,mBAAmB,GAAG,gEAAgE,CAAC;AAC7F,MAAM,aAAa,GAAG,iDAAiD,CAAC;AAExE,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAwB;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,aAAa,CAAC,YAAY,CAAC;QACpC,CAAC;QAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,cAAc,CAAC;QACtC,CAAC;QAED,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAwB;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,KAAK,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAwB;QAChD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,YAAY,IAAI,MAAM,KAAK,aAAa,CAAC,UAAU,CAAC;IACtF,CAAC;CACF"}
@@ -1,6 +1,22 @@
1
1
  import { AsyncJovo } from '@jovotech/framework';
2
2
  export class SipgateAiflowAsync extends AsyncJovo {
3
+ get abortSignal() {
4
+ if (!this._abortController) {
5
+ this._abortController = new AbortController();
6
+ }
7
+ return this._abortController.signal;
8
+ }
9
+ cancelPendingOperations() {
10
+ if (this._abortController) {
11
+ this._abortController.abort();
12
+ this._abortController = undefined;
13
+ }
14
+ }
3
15
  async sendResponse(response) {
16
+ var _a;
17
+ if ((_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
18
+ return;
19
+ }
4
20
  const server = this.$server;
5
21
  const ws = server.getWebSocket();
6
22
  if (ws.readyState === ws.OPEN) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQhD,MAAM,OAAO,kBAAmB,SAAQ,SAOvC;IACW,KAAK,CAAC,YAAY,CAAC,QAA+B;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQhD,MAAM,OAAO,kBAAmB,SAAQ,SAOvC;IAGC,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAA+B;;QAC1D,IAAI,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
@@ -6,6 +6,7 @@ import { SipgateAiflowDevice } from './SipgateAiflowDevice';
6
6
  import { SipgateAiflowRequest } from './SipgateAiflowRequest';
7
7
  import { SipgateAiflowRequestBuilder } from './SipgateAiflowRequestBuilder';
8
8
  import { SipgateAiflowUser } from './SipgateAiflowUser';
9
+ import { SipgateInputType } from './interfaces';
9
10
  import { WebSocketServer } from './server';
10
11
  export class SipgateAiflowPlatform extends Platform {
11
12
  constructor(config) {
@@ -34,6 +35,18 @@ export class SipgateAiflowPlatform extends Platform {
34
35
  jovo.$history.items = [];
35
36
  }
36
37
  });
38
+ // Auto-increment barge-in counter on barge-in events
39
+ this.middlewareCollection.use('before.dialogue.start', async (jovo) => {
40
+ const request = jovo.$request;
41
+ const isBargeIn = request.type === SipgateInputType.USER_BARGE_IN ||
42
+ (request.type === SipgateInputType.USER_SPEAK && request.barged_in === true);
43
+ if (isBargeIn) {
44
+ const session = jovo.$session;
45
+ if (typeof session.incrementBargeIn === 'function') {
46
+ session.incrementBargeIn();
47
+ }
48
+ }
49
+ });
37
50
  this.middlewareCollection.use('after.response.end', async (jovo) => {
38
51
  if (jovo instanceof SipgateAiflowAsync) {
39
52
  jovo.$response = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,QAAQ,GAIT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA2B3C,MAAM,OAAO,qBAAsB,SAAQ,QAQ1C;IAWC,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAXP,OAAE,GAAW,gBAAgB,CAAC;QAC9B,cAAS,GAAuC,iBAAiB,CAAC;QAClE,gBAAW,GAAyC,mBAAmB,CAAC;QACjF,mFAAmF;QAC1E,mBAAc,GACrB,2BAA2B,CAAC;QACrB,oCAA+B,GAAG,IAAI,4CAA4C,EAAE,CAAC;QACrF,iBAAY,GAAsC,oBAAoB,CAAC;QACvE,cAAS,GAA+B,aAAa,CAAC;IAI/D,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,mBAAmB,EAAE,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAqB;QACzB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,qFAAqF;QACrF,sFAAsF;QACtF,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;;YACxE,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,MAAK,IAAI,CAAC,IAAI,KAAI,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,YAAY,kDAAI,CAAA,EAAE,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;YACvE,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,GAAQ,EACR,aAA4B;;QAE5B,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,aAAa,CAAC,MAAM,YAAY,eAAe,CAAC;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,OAAyC;;QACxD,OAAO,OAAO,CAAC,GAAG,IAAI,iBAAiB,IAAI,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,EAAE,KAAI,IAAI,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,QAA2C;QAC3D,OAAO,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,gBAAgB,CACd,QAA+B,EAC/B,IAAmB;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":"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"}
@@ -31,11 +31,12 @@ export class SipgateAiflowRequest extends JovoRequest {
31
31
  .build();
32
32
  }
33
33
  else if (this.type == SipgateInputType.USER_SPEAK) {
34
- return new AiflowInputBuilder()
35
- .set('type', InputType.Text)
34
+ const builder = new AiflowInputBuilder()
35
+ .set('type', this.barged_in ? InputType.USER_BARGE_IN : InputType.Text)
36
36
  .set('session', this.session)
37
37
  .set('text', this.text)
38
- .build();
38
+ .set('barged_in', this.barged_in || undefined);
39
+ return builder.build();
39
40
  }
40
41
  else if (this.type == SipgateInputType.ASSISTANT_SPEAK) {
41
42
  return new AiflowInputBuilder()
@@ -56,6 +57,7 @@ export class SipgateAiflowRequest extends JovoRequest {
56
57
  .set('type', InputType.USER_BARGE_IN)
57
58
  .set('session', this.session)
58
59
  .set('text', this.text)
60
+ .set('barged_in', true)
59
61
  .build();
60
62
  }
61
63
  else if (this.type == SipgateInputType.SESSION_END) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,23 @@
1
1
  import { JovoSession } from '@jovotech/framework';
2
2
  export class SipgateAiflowSession extends JovoSession {
3
3
  constructor(data) {
4
+ var _a;
4
5
  super(data);
6
+ this.bargeInCount = 0;
5
7
  this.sessionInfo = data === null || data === void 0 ? void 0 : data.sessionInfo;
8
+ this.bargeInCount = (_a = data === null || data === void 0 ? void 0 : data.bargeInCount) !== null && _a !== void 0 ? _a : 0;
9
+ }
10
+ incrementBargeIn() {
11
+ return ++this.bargeInCount;
12
+ }
13
+ setPersistableData(data, config) {
14
+ const currentId = this.id;
15
+ super.setPersistableData(data, config);
16
+ // Always use the session ID from the current request, not from the DB.
17
+ // Each sipgate call has its own session ID; the DB-loaded ID belongs to
18
+ // a previous call and must not overwrite it.
19
+ this.id = currentId;
20
+ return this;
6
21
  }
7
22
  }
8
23
  //# sourceMappingURL=SipgateAiflowSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAGnD,YAAY,IAAoC;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAKnD,YAAY,IAAoC;;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QAHd,iBAAY,GAAW,CAAC,CAAC;QAIvB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,IAAS,EAAE,MAAY;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,uEAAuE;QACvE,wEAAwE;QACxE,6CAA6C;QAC7C,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -27,6 +27,7 @@ export var TtsProvider;
27
27
  export var BargeInStrategy;
28
28
  (function (BargeInStrategy) {
29
29
  BargeInStrategy["NONE"] = "none";
30
+ BargeInStrategy["IMMEDIATE"] = "immediate";
30
31
  BargeInStrategy["MANUAL"] = "manual";
31
32
  BargeInStrategy["MINIMUM_CHARACTERS"] = "minimum_characters";
32
33
  })(BargeInStrategy || (BargeInStrategy = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8FAA8F;AAE9F,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
1
+ {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8FAA8F;AAE9F,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,0CAAuB,CAAA;IACvB,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B"}
@@ -18,6 +18,7 @@ export * from './SipgateAiflowRequest';
18
18
  export * from './SipgateAiflowResponse';
19
19
  export * from './SipgateAiflowPlatform';
20
20
  export * from './SipgateAiflowSession';
21
+ export * from './BargeInHelper';
21
22
  export * from './output';
22
23
  export * from './interfaces';
23
24
  export * from './server';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,gBAAgB,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAyBvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,gBAAgB,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAyBvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../src/AiflowInput.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
1
+ {"root":["../../src/AiflowInput.ts","../../src/BargeInHelper.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
@@ -1 +1 @@
1
- {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1F,MAAM,OAAO,WAAY,SAAQ,SAAS;CAMzC;AAED,MAAM,OAAO,kBAAkB;IAE7B,YAAY,oBAA2C,kBAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"AiflowInput.js","sourceRoot":"","sources":["../../src/AiflowInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAwB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG1F,MAAM,OAAO,WAAY,SAAQ,SAAS;CAOzC;AAED,MAAM,OAAO,kBAAkB;IAE7B,YAAY,oBAA2C,kBAAkB;QACvE,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAgC,GAAQ,EAAE,KAAuB;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,49 @@
1
+ export var BargeInIntent;
2
+ (function (BargeInIntent) {
3
+ BargeInIntent["ACKNOWLEDGMENT"] = "acknowledgment";
4
+ BargeInIntent["REDIRECT"] = "redirect";
5
+ BargeInIntent["CORRECTION"] = "correction";
6
+ BargeInIntent["NEW_QUESTION"] = "new_question";
7
+ BargeInIntent["STOP"] = "stop";
8
+ BargeInIntent["NOISE"] = "noise";
9
+ })(BargeInIntent || (BargeInIntent = {}));
10
+ const ACKNOWLEDGMENT_PATTERNS = /\b(got it|understood|okay|ok|yes|yeah|yep|right|sure|alright|i see|makes sense)\b/i;
11
+ const REDIRECT_PATTERNS = /\b(actually|wait|hold on|never ?mind|instead|but)\b/i;
12
+ const CORRECTION_PATTERNS = /\b(no|not what i|i meant|i said|wrong|incorrect|that's not)\b/i;
13
+ const STOP_PATTERNS = /^(stop|quiet|shut up|be quiet|enough|silence)$/i;
14
+ export class BargeInHelper {
15
+ static classify(text) {
16
+ if (!text || text.trim().length === 0) {
17
+ return BargeInIntent.NOISE;
18
+ }
19
+ const trimmed = text.trim();
20
+ if (trimmed.length < 3) {
21
+ return BargeInIntent.NOISE;
22
+ }
23
+ if (STOP_PATTERNS.test(trimmed)) {
24
+ return BargeInIntent.STOP;
25
+ }
26
+ if (trimmed.length > 25 || trimmed.includes('?')) {
27
+ return BargeInIntent.NEW_QUESTION;
28
+ }
29
+ if (CORRECTION_PATTERNS.test(trimmed)) {
30
+ return BargeInIntent.CORRECTION;
31
+ }
32
+ if (REDIRECT_PATTERNS.test(trimmed)) {
33
+ return BargeInIntent.REDIRECT;
34
+ }
35
+ if (ACKNOWLEDGMENT_PATTERNS.test(trimmed)) {
36
+ return BargeInIntent.ACKNOWLEDGMENT;
37
+ }
38
+ return BargeInIntent.NEW_QUESTION;
39
+ }
40
+ static shouldSilentAcknowledge(text) {
41
+ const intent = BargeInHelper.classify(text);
42
+ return intent === BargeInIntent.NOISE || intent === BargeInIntent.STOP;
43
+ }
44
+ static isSubstantialInput(text) {
45
+ const intent = BargeInHelper.classify(text);
46
+ return intent === BargeInIntent.NEW_QUESTION || intent === BargeInIntent.CORRECTION;
47
+ }
48
+ }
49
+ //# sourceMappingURL=BargeInHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BargeInHelper.js","sourceRoot":"","sources":["../../src/BargeInHelper.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,sCAAqB,CAAA;IACrB,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,8BAAa,CAAA;IACb,gCAAe,CAAA;AACjB,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED,MAAM,uBAAuB,GAAG,oFAAoF,CAAC;AACrH,MAAM,iBAAiB,GAAG,sDAAsD,CAAC;AACjF,MAAM,mBAAmB,GAAG,gEAAgE,CAAC;AAC7F,MAAM,aAAa,GAAG,iDAAiD,CAAC;AAExE,MAAM,OAAO,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,IAAwB;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,aAAa,CAAC,KAAK,CAAC;QAC7B,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,aAAa,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,aAAa,CAAC,YAAY,CAAC;QACpC,CAAC;QAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,aAAa,CAAC,cAAc,CAAC;QACtC,CAAC;QAED,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAwB;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,KAAK,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,IAAwB;QAChD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,MAAM,KAAK,aAAa,CAAC,YAAY,IAAI,MAAM,KAAK,aAAa,CAAC,UAAU,CAAC;IACtF,CAAC;CACF"}
@@ -1,6 +1,22 @@
1
1
  import { AsyncJovo } from '@jovotech/framework';
2
2
  export class SipgateAiflowAsync extends AsyncJovo {
3
+ get abortSignal() {
4
+ if (!this._abortController) {
5
+ this._abortController = new AbortController();
6
+ }
7
+ return this._abortController.signal;
8
+ }
9
+ cancelPendingOperations() {
10
+ if (this._abortController) {
11
+ this._abortController.abort();
12
+ this._abortController = undefined;
13
+ }
14
+ }
3
15
  async sendResponse(response) {
16
+ var _a;
17
+ if ((_a = this._abortController) === null || _a === void 0 ? void 0 : _a.signal.aborted) {
18
+ return;
19
+ }
4
20
  const server = this.$server;
5
21
  const ws = server.getWebSocket();
6
22
  if (ws.readyState === ws.OPEN) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQhD,MAAM,OAAO,kBAAmB,SAAQ,SAOvC;IACW,KAAK,CAAC,YAAY,CAAC,QAA+B;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowAsync.js","sourceRoot":"","sources":["../../src/SipgateAiflowAsync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQhD,MAAM,OAAO,kBAAmB,SAAQ,SAOvC;IAGC,IAAI,WAAW;QACb,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,QAA+B;;QAC1D,IAAI,MAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAA0B,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF"}
@@ -6,6 +6,7 @@ import { SipgateAiflowDevice } from './SipgateAiflowDevice';
6
6
  import { SipgateAiflowRequest } from './SipgateAiflowRequest';
7
7
  import { SipgateAiflowRequestBuilder } from './SipgateAiflowRequestBuilder';
8
8
  import { SipgateAiflowUser } from './SipgateAiflowUser';
9
+ import { SipgateInputType } from './interfaces';
9
10
  import { WebSocketServer } from './server';
10
11
  export class SipgateAiflowPlatform extends Platform {
11
12
  constructor(config) {
@@ -34,6 +35,18 @@ export class SipgateAiflowPlatform extends Platform {
34
35
  jovo.$history.items = [];
35
36
  }
36
37
  });
38
+ // Auto-increment barge-in counter on barge-in events
39
+ this.middlewareCollection.use('before.dialogue.start', async (jovo) => {
40
+ const request = jovo.$request;
41
+ const isBargeIn = request.type === SipgateInputType.USER_BARGE_IN ||
42
+ (request.type === SipgateInputType.USER_SPEAK && request.barged_in === true);
43
+ if (isBargeIn) {
44
+ const session = jovo.$session;
45
+ if (typeof session.incrementBargeIn === 'function') {
46
+ session.incrementBargeIn();
47
+ }
48
+ }
49
+ });
37
50
  this.middlewareCollection.use('after.response.end', async (jovo) => {
38
51
  if (jovo instanceof SipgateAiflowAsync) {
39
52
  jovo.$response = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,QAAQ,GAIT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,4CAA4C,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AA2B3C,MAAM,OAAO,qBAAsB,SAAQ,QAQ1C;IAWC,YAAY,MAA4B;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;QAXP,OAAE,GAAW,gBAAgB,CAAC;QAC9B,cAAS,GAAuC,iBAAiB,CAAC;QAClE,gBAAW,GAAyC,mBAAmB,CAAC;QACjF,mFAAmF;QAC1E,mBAAc,GACrB,2BAA2B,CAAC;QACrB,oCAA+B,GAAG,IAAI,4CAA4C,EAAE,CAAC;QACrF,iBAAY,GAAsC,oBAAoB,CAAC;QACvE,cAAS,GAA+B,aAAa,CAAC;IAI/D,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,mBAAmB,EAAE,CAAC;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAqB;QACzB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,qFAAqF;QACrF,sFAAsF;QACtF,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;;YACxE,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,MAAK,IAAI,CAAC,IAAI,KAAI,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,YAAY,kDAAI,CAAA,EAAE,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;YACvE,IAAI,IAAI,YAAY,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,GAAQ,EACR,aAA4B;;QAE5B,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,MAAM,CAAC,WAAW,mCAAI,aAAa,CAAC,MAAM,YAAY,eAAe,CAAC;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,OAAyC;;QACxD,OAAO,OAAO,CAAC,GAAG,IAAI,iBAAiB,IAAI,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,EAAE,KAAI,IAAI,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,QAA2C;QAC3D,OAAO,QAAQ,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IACpD,CAAC;IAED,gBAAgB,CACd,QAA+B,EAC/B,IAAmB;QAEnB,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowPlatform.js","sourceRoot":"","sources":["../../src/SipgateAiflowPlatform.ts"],"names":[],"mappings":"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"}
@@ -31,11 +31,12 @@ export class SipgateAiflowRequest extends JovoRequest {
31
31
  .build();
32
32
  }
33
33
  else if (this.type == SipgateInputType.USER_SPEAK) {
34
- return new AiflowInputBuilder()
35
- .set('type', InputType.Text)
34
+ const builder = new AiflowInputBuilder()
35
+ .set('type', this.barged_in ? InputType.USER_BARGE_IN : InputType.Text)
36
36
  .set('session', this.session)
37
37
  .set('text', this.text)
38
- .build();
38
+ .set('barged_in', this.barged_in || undefined);
39
+ return builder.build();
39
40
  }
40
41
  else if (this.type == SipgateInputType.ASSISTANT_SPEAK) {
41
42
  return new AiflowInputBuilder()
@@ -56,6 +57,7 @@ export class SipgateAiflowRequest extends JovoRequest {
56
57
  .set('type', InputType.USER_BARGE_IN)
57
58
  .set('session', this.session)
58
59
  .set('text', this.text)
60
+ .set('barged_in', true)
59
61
  .build();
60
62
  }
61
63
  else if (this.type == SipgateInputType.SESSION_END) {
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SipgateAiflowRequest.js","sourceRoot":"","sources":["../../src/SipgateAiflowRequest.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,23 @@
1
1
  import { JovoSession } from '@jovotech/framework';
2
2
  export class SipgateAiflowSession extends JovoSession {
3
3
  constructor(data) {
4
+ var _a;
4
5
  super(data);
6
+ this.bargeInCount = 0;
5
7
  this.sessionInfo = data === null || data === void 0 ? void 0 : data.sessionInfo;
8
+ this.bargeInCount = (_a = data === null || data === void 0 ? void 0 : data.bargeInCount) !== null && _a !== void 0 ? _a : 0;
9
+ }
10
+ incrementBargeIn() {
11
+ return ++this.bargeInCount;
12
+ }
13
+ setPersistableData(data, config) {
14
+ const currentId = this.id;
15
+ super.setPersistableData(data, config);
16
+ // Always use the session ID from the current request, not from the DB.
17
+ // Each sipgate call has its own session ID; the DB-loaded ID belongs to
18
+ // a previous call and must not overwrite it.
19
+ this.id = currentId;
20
+ return this;
6
21
  }
7
22
  }
8
23
  //# sourceMappingURL=SipgateAiflowSession.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAGnD,YAAY,IAAoC;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"SipgateAiflowSession.js","sourceRoot":"","sources":["../../src/SipgateAiflowSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAKnD,YAAY,IAAoC;;QAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;QAHd,iBAAY,GAAW,CAAC,CAAC;QAIvB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,mCAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,kBAAkB,CAAC,IAAS,EAAE,MAAY;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,uEAAuE;QACvE,wEAAwE;QACxE,6CAA6C;QAC7C,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -27,6 +27,7 @@ export var TtsProvider;
27
27
  export var BargeInStrategy;
28
28
  (function (BargeInStrategy) {
29
29
  BargeInStrategy["NONE"] = "none";
30
+ BargeInStrategy["IMMEDIATE"] = "immediate";
30
31
  BargeInStrategy["MANUAL"] = "manual";
31
32
  BargeInStrategy["MINIMUM_CHARACTERS"] = "minimum_characters";
32
33
  })(BargeInStrategy || (BargeInStrategy = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8FAA8F;AAE9F,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B"}
1
+ {"version":3,"file":"aiflow-types.js","sourceRoot":"","sources":["../../src/aiflow-types.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8FAA8F;AAE9F,MAAM,CAAN,IAAY,eAQX;AARD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,oEAAiD,CAAA;IACjD,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,4DAAyC,CAAA;IACzC,kDAA+B,CAAA;IAC/B,8CAA2B,CAAA;AAC7B,CAAC,EARW,eAAe,KAAf,eAAe,QAQ1B;AAED,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,mCAAe,CAAA;IACf,qCAAiB,CAAA;IACjB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;AACvB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B;AAED,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,0CAA2B,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,0CAAuB,CAAA;IACvB,oCAAiB,CAAA;IACjB,4DAAyC,CAAA;AAC3C,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B"}
@@ -18,6 +18,7 @@ export * from './SipgateAiflowRequest';
18
18
  export * from './SipgateAiflowResponse';
19
19
  export * from './SipgateAiflowPlatform';
20
20
  export * from './SipgateAiflowSession';
21
+ export * from './BargeInHelper';
21
22
  export * from './output';
22
23
  export * from './interfaces';
23
24
  export * from './server';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,gBAAgB,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAyBvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,WAAW,GAKZ,MAAM,gBAAgB,CAAC;AAExB,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAyBvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../src/AiflowInput.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
1
+ {"root":["../../src/AiflowInput.ts","../../src/BargeInHelper.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "type": "user_speak",
3
+ "text": "Wait, actually I have a different question",
4
+ "barged_in": true,
5
+ "session": {
6
+ "id": "550e8400-e29b-41d4-a716-446655440000",
7
+ "account_id": "acc_12345",
8
+ "phone_number": "+491234567890"
9
+ }
10
+ }
@@ -6,6 +6,7 @@ export declare class AiflowInput extends JovoInput {
6
6
  speech_started_at?: number;
7
7
  duration_ms?: number;
8
8
  dtmf?: number;
9
+ barged_in?: boolean;
9
10
  }
10
11
  export declare class AiflowInputBuilder {
11
12
  private readonly input;
@@ -0,0 +1,13 @@
1
+ export declare enum BargeInIntent {
2
+ ACKNOWLEDGMENT = "acknowledgment",
3
+ REDIRECT = "redirect",
4
+ CORRECTION = "correction",
5
+ NEW_QUESTION = "new_question",
6
+ STOP = "stop",
7
+ NOISE = "noise"
8
+ }
9
+ export declare class BargeInHelper {
10
+ static classify(text: string | undefined): BargeInIntent;
11
+ static shouldSilentAcknowledge(text: string | undefined): boolean;
12
+ static isSubstantialInput(text: string | undefined): boolean;
13
+ }
@@ -5,5 +5,8 @@ import { SipgateAiflowRequest } from './SipgateAiflowRequest';
5
5
  import { SipgateAiflowResponse } from './SipgateAiflowResponse';
6
6
  import { SipgateAiflowUser } from './SipgateAiflowUser';
7
7
  export declare class SipgateAiflowAsync extends AsyncJovo<SipgateAiflowRequest, SipgateAiflowResponse, any, SipgateAiflowUser, SipgateAiflowDevice, SipgateAiflowPlatform> {
8
+ private _abortController?;
9
+ get abortSignal(): AbortSignal;
10
+ cancelPendingOperations(): void;
8
11
  protected sendResponse(response: SipgateAiflowResponse): Promise<void>;
9
12
  }
@@ -12,6 +12,7 @@ export declare class SipgateAiflowRequest extends JovoRequest {
12
12
  duration_ms?: number;
13
13
  speech_started_at?: number;
14
14
  dtmf?: number;
15
+ barged_in?: boolean;
15
16
  static fromJSON(json: UnknownObject | string): SipgateAiflowRequest;
16
17
  getInput(): AiflowInput;
17
18
  getSessionId(): string | undefined;
@@ -2,5 +2,8 @@ import { JovoSession } from '@jovotech/framework';
2
2
  import { SipgateAiFlowSession } from './interfaces';
3
3
  export declare class SipgateAiflowSession extends JovoSession {
4
4
  sessionInfo?: SipgateAiFlowSession;
5
+ bargeInCount: number;
5
6
  constructor(data?: Partial<SipgateAiflowSession>);
7
+ incrementBargeIn(): number;
8
+ setPersistableData(data: any, config?: any): this;
6
9
  }
@@ -21,6 +21,7 @@ export declare enum TtsProvider {
21
21
  }
22
22
  export declare enum BargeInStrategy {
23
23
  NONE = "none",
24
+ IMMEDIATE = "immediate",
24
25
  MANUAL = "manual",
25
26
  MINIMUM_CHARACTERS = "minimum_characters"
26
27
  }
@@ -53,6 +54,7 @@ export interface AiFlowEventUserSpeak {
53
54
  session: AiFlowEventSessionInfo;
54
55
  type: AiFlowEventType.USER_SPEAK;
55
56
  text: string;
57
+ barged_in?: boolean;
56
58
  }
57
59
  export interface AiFlowEventUserBargeIn {
58
60
  session: AiFlowEventSessionInfo;
@@ -38,6 +38,7 @@ export * from './SipgateAiflowRequest';
38
38
  export * from './SipgateAiflowResponse';
39
39
  export * from './SipgateAiflowPlatform';
40
40
  export * from './SipgateAiflowSession';
41
+ export * from './BargeInHelper';
41
42
  export * from './output';
42
43
  export * from './interfaces';
43
44
  export * from './server';
@@ -1 +1 @@
1
- {"root":["../../src/AiflowInput.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
1
+ {"root":["../../src/AiflowInput.ts","../../src/BargeInHelper.ts","../../src/SipgateAiflow.ts","../../src/SipgateAiflowAsync.ts","../../src/SipgateAiflowAudioResponse.ts","../../src/SipgateAiflowDevice.ts","../../src/SipgateAiflowPlatform.ts","../../src/SipgateAiflowRequest.ts","../../src/SipgateAiflowRequestBuilder.ts","../../src/SipgateAiflowResponse.ts","../../src/SipgateAiflowSession.ts","../../src/SipgateAiflowTransferResponse.ts","../../src/SipgateAiflowUser.ts","../../src/aiflow-types.ts","../../src/app.ts","../../src/index.ts","../../src/interfaces.ts","../../src/output/AudioOutput.ts","../../src/output/BargeInOutput.ts","../../src/output/DtmfOutput.ts","../../src/output/EmptyOutput.ts","../../src/output/HangupOutput.ts","../../src/output/SessionStartOutput.ts","../../src/output/SipgateAiflowOutputTemplateConverterStrategy.ts","../../src/output/SpeakOutput.ts","../../src/output/TransferOutput.ts","../../src/output/index.ts","../../src/server/WebSocketServer.ts","../../src/server/index.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lautmaler/jovo-platform-aiflow",
3
- "version": "0.2.6",
3
+ "version": "0.2.8",
4
4
  "description": "Sipgate AI Flow integration for Jovo Framework",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm5/index.js",