@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.
- package/README.md +133 -2
- package/dist/cjs/AiflowInput.js.map +1 -1
- package/dist/cjs/BargeInHelper.js +53 -0
- package/dist/cjs/BargeInHelper.js.map +1 -0
- package/dist/cjs/SipgateAiflowAsync.js +16 -0
- package/dist/cjs/SipgateAiflowAsync.js.map +1 -1
- package/dist/cjs/SipgateAiflowPlatform.js +13 -0
- package/dist/cjs/SipgateAiflowPlatform.js.map +1 -1
- package/dist/cjs/SipgateAiflowRequest.js +5 -3
- package/dist/cjs/SipgateAiflowRequest.js.map +1 -1
- package/dist/cjs/SipgateAiflowSession.js +15 -0
- package/dist/cjs/SipgateAiflowSession.js.map +1 -1
- package/dist/cjs/aiflow-types.js +1 -0
- package/dist/cjs/aiflow-types.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/esm2015/AiflowInput.js.map +1 -1
- package/dist/esm2015/BargeInHelper.js +49 -0
- package/dist/esm2015/BargeInHelper.js.map +1 -0
- package/dist/esm2015/SipgateAiflowAsync.js +16 -0
- package/dist/esm2015/SipgateAiflowAsync.js.map +1 -1
- package/dist/esm2015/SipgateAiflowPlatform.js +13 -0
- package/dist/esm2015/SipgateAiflowPlatform.js.map +1 -1
- package/dist/esm2015/SipgateAiflowRequest.js +5 -3
- package/dist/esm2015/SipgateAiflowRequest.js.map +1 -1
- package/dist/esm2015/SipgateAiflowSession.js +15 -0
- package/dist/esm2015/SipgateAiflowSession.js.map +1 -1
- package/dist/esm2015/aiflow-types.js +1 -0
- package/dist/esm2015/aiflow-types.js.map +1 -1
- package/dist/esm2015/index.js +1 -0
- package/dist/esm2015/index.js.map +1 -1
- package/dist/esm2015/tsconfig.build.esm2015.tsbuildinfo +1 -1
- package/dist/esm5/AiflowInput.js.map +1 -1
- package/dist/esm5/BargeInHelper.js +49 -0
- package/dist/esm5/BargeInHelper.js.map +1 -0
- package/dist/esm5/SipgateAiflowAsync.js +16 -0
- package/dist/esm5/SipgateAiflowAsync.js.map +1 -1
- package/dist/esm5/SipgateAiflowPlatform.js +13 -0
- package/dist/esm5/SipgateAiflowPlatform.js.map +1 -1
- package/dist/esm5/SipgateAiflowRequest.js +5 -3
- package/dist/esm5/SipgateAiflowRequest.js.map +1 -1
- package/dist/esm5/SipgateAiflowSession.js +15 -0
- package/dist/esm5/SipgateAiflowSession.js.map +1 -1
- package/dist/esm5/aiflow-types.js +1 -0
- package/dist/esm5/aiflow-types.js.map +1 -1
- package/dist/esm5/index.js +1 -0
- package/dist/esm5/index.js.map +1 -1
- package/dist/esm5/tsconfig.build.esm5.tsbuildinfo +1 -1
- package/dist/sample-requests/UserSpeakBargedIn.json +10 -0
- package/dist/types/AiflowInput.d.ts +1 -0
- package/dist/types/BargeInHelper.d.ts +13 -0
- package/dist/types/SipgateAiflowAsync.d.ts +3 -0
- package/dist/types/SipgateAiflowRequest.d.ts +1 -0
- package/dist/types/SipgateAiflowSession.d.ts +3 -0
- package/dist/types/aiflow-types.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/tsconfig.build.types.tsbuildinfo +1 -1
- 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;
|
|
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;
|
|
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;
|
|
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;AAMxD,6CAAgD;AAChD,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,qDAAqD;QACrD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAU,EAAE,EAAE;YAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAgC,CAAC;YACtD,MAAM,SAAS,GACb,OAAO,CAAC,IAAI,KAAK,6BAAgB,CAAC,aAAa;gBAC/C,CAAC,OAAO,CAAC,IAAI,KAAK,6BAAgB,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;YAC/E,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,QAAgC,CAAC;gBACtD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;oBACnD,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,CAAC;YACH,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;AArFD,sDAqFC"}
|
|
@@ -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
|
-
|
|
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
|
-
.
|
|
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":";;;AAAA,mDAQ6B;AAE7B,6CAAiF;AACjF,+CAAgE;AAChE,iEAA8D;AAE9D,MAAa,oBAAqB,SAAQ,uBAAW;IAArD;;QACE,QAAG,GAA+B,iBAAiB,CAAC;
|
|
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;
|
|
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"}
|
package/dist/cjs/aiflow-types.js
CHANGED
|
@@ -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,
|
|
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);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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
|
-
.
|
|
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":"AAAA,OAAO,EAML,WAAW,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAwB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAArD;;QACE,QAAG,GAA+B,iBAAiB,CAAC;
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/esm2015/index.js
CHANGED
|
@@ -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;
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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
|
-
.
|
|
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":"AAAA,OAAO,EAML,WAAW,GAEZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAwB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EAAe,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAArD;;QACE,QAAG,GAA+B,iBAAiB,CAAC;
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/esm5/index.js
CHANGED
|
@@ -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';
|
package/dist/esm5/index.js.map
CHANGED
|
@@ -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,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;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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"}
|