@absolutejs/voice 0.0.22-beta.543 → 0.0.22-beta.545
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/dist/client/index.js +39 -13
- package/dist/core/cachedTTS.d.ts +1 -1
- package/dist/core/types.d.ts +7 -0
- package/dist/index.js +13 -4
- package/dist/react/index.js +39 -13
- package/dist/svelte/index.js +30 -10
- package/dist/telephony/twilio.d.ts +8 -0
- package/dist/testing/index.js +13 -4
- package/dist/vue/index.js +30 -10
- package/package.json +1 -1
package/dist/client/index.js
CHANGED
|
@@ -3007,7 +3007,9 @@ var defineVoiceSessionObservabilityElement = (tagName = "absolute-voice-session-
|
|
|
3007
3007
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
3008
3008
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
3009
3009
|
})
|
|
3010
|
-
} : {
|
|
3010
|
+
} : {
|
|
3011
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
3012
|
+
}
|
|
3011
3013
|
});
|
|
3012
3014
|
}
|
|
3013
3015
|
disconnectedCallback() {
|
|
@@ -3855,7 +3857,9 @@ var defineVoiceOpsStatusElement = (tagName = "absolute-voice-ops-status") => {
|
|
|
3855
3857
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
3856
3858
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
3857
3859
|
})
|
|
3858
|
-
} : {
|
|
3860
|
+
} : {
|
|
3861
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
3862
|
+
}
|
|
3859
3863
|
});
|
|
3860
3864
|
}
|
|
3861
3865
|
disconnectedCallback() {
|
|
@@ -8866,7 +8870,9 @@ var defineVoiceReconnectProfileEvidenceElement = (tagName = "absolute-voice-reco
|
|
|
8866
8870
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8867
8871
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8868
8872
|
})
|
|
8869
|
-
} : {
|
|
8873
|
+
} : {
|
|
8874
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8875
|
+
}
|
|
8870
8876
|
});
|
|
8871
8877
|
}
|
|
8872
8878
|
disconnectedCallback() {
|
|
@@ -8963,7 +8969,9 @@ var defineVoiceProfileComparisonElement = (tagName = "absolute-voice-profile-com
|
|
|
8963
8969
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8964
8970
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8965
8971
|
})
|
|
8966
|
-
} : {
|
|
8972
|
+
} : {
|
|
8973
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8974
|
+
}
|
|
8967
8975
|
});
|
|
8968
8976
|
}
|
|
8969
8977
|
disconnectedCallback() {
|
|
@@ -9032,7 +9040,9 @@ var defineVoiceProfileSwitchRecommendationElement = (tagName = "absolute-voice-p
|
|
|
9032
9040
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9033
9041
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9034
9042
|
})
|
|
9035
|
-
} : {
|
|
9043
|
+
} : {
|
|
9044
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9045
|
+
}
|
|
9036
9046
|
});
|
|
9037
9047
|
}
|
|
9038
9048
|
disconnectedCallback() {
|
|
@@ -10009,7 +10019,9 @@ var defineVoiceDeliveryRuntimeElement = (tagName = "absolute-voice-delivery-runt
|
|
|
10009
10019
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
10010
10020
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
10011
10021
|
})
|
|
10012
|
-
} : {
|
|
10022
|
+
} : {
|
|
10023
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
10024
|
+
}
|
|
10013
10025
|
});
|
|
10014
10026
|
}
|
|
10015
10027
|
disconnectedCallback() {
|
|
@@ -10256,7 +10268,9 @@ var defineVoiceRoutingStatusElement = (tagName = "absolute-voice-routing-status"
|
|
|
10256
10268
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
10257
10269
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
10258
10270
|
})
|
|
10259
|
-
} : {
|
|
10271
|
+
} : {
|
|
10272
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
10273
|
+
}
|
|
10260
10274
|
});
|
|
10261
10275
|
}
|
|
10262
10276
|
disconnectedCallback() {
|
|
@@ -11263,7 +11277,9 @@ var defineVoiceProviderStatusElement = (tagName = "absolute-voice-provider-statu
|
|
|
11263
11277
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11264
11278
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11265
11279
|
})
|
|
11266
|
-
} : {
|
|
11280
|
+
} : {
|
|
11281
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11282
|
+
}
|
|
11267
11283
|
});
|
|
11268
11284
|
}
|
|
11269
11285
|
disconnectedCallback() {
|
|
@@ -11383,7 +11399,9 @@ var defineVoiceProviderCapabilitiesElement = (tagName = "absolute-voice-provider
|
|
|
11383
11399
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11384
11400
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11385
11401
|
})
|
|
11386
|
-
} : {
|
|
11402
|
+
} : {
|
|
11403
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11404
|
+
}
|
|
11387
11405
|
});
|
|
11388
11406
|
}
|
|
11389
11407
|
disconnectedCallback() {
|
|
@@ -11492,7 +11510,9 @@ var defineVoiceProviderContractsElement = (tagName = "absolute-voice-provider-co
|
|
|
11492
11510
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11493
11511
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11494
11512
|
})
|
|
11495
|
-
} : {
|
|
11513
|
+
} : {
|
|
11514
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11515
|
+
}
|
|
11496
11516
|
});
|
|
11497
11517
|
}
|
|
11498
11518
|
disconnectedCallback() {
|
|
@@ -11614,7 +11634,9 @@ var defineVoiceTurnQualityElement = (tagName = "absolute-voice-turn-quality") =>
|
|
|
11614
11634
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11615
11635
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11616
11636
|
})
|
|
11617
|
-
} : {
|
|
11637
|
+
} : {
|
|
11638
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11639
|
+
}
|
|
11618
11640
|
});
|
|
11619
11641
|
}
|
|
11620
11642
|
disconnectedCallback() {
|
|
@@ -11710,7 +11732,9 @@ var defineVoiceTurnLatencyElement = (tagName = "absolute-voice-turn-latency") =>
|
|
|
11710
11732
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11711
11733
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11712
11734
|
})
|
|
11713
|
-
} : {
|
|
11735
|
+
} : {
|
|
11736
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11737
|
+
}
|
|
11714
11738
|
});
|
|
11715
11739
|
}
|
|
11716
11740
|
disconnectedCallback() {
|
|
@@ -11815,7 +11839,9 @@ var defineVoiceTraceTimelineElement = (tagName = "absolute-voice-trace-timeline"
|
|
|
11815
11839
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
11816
11840
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
11817
11841
|
})
|
|
11818
|
-
} : {
|
|
11842
|
+
} : {
|
|
11843
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
11844
|
+
}
|
|
11819
11845
|
});
|
|
11820
11846
|
}
|
|
11821
11847
|
disconnectedCallback() {
|
package/dist/core/cachedTTS.d.ts
CHANGED
package/dist/core/types.d.ts
CHANGED
|
@@ -463,6 +463,13 @@ export type VoiceResolvedAudioConditioningConfig = {
|
|
|
463
463
|
export type VoiceSocket = {
|
|
464
464
|
send: (data: string | Uint8Array | ArrayBuffer) => void | Promise<void>;
|
|
465
465
|
close: (code?: number, reason?: string) => void | Promise<void>;
|
|
466
|
+
/**
|
|
467
|
+
* Discard any audio already buffered downstream (e.g. a telephony carrier's
|
|
468
|
+
* outbound media buffer). Called on barge-in so the caller stops hearing the
|
|
469
|
+
* assistant immediately, even when frames have already been flushed to the
|
|
470
|
+
* transport. Optional: transports without a flush concept omit it.
|
|
471
|
+
*/
|
|
472
|
+
clear?: () => void | Promise<void>;
|
|
466
473
|
};
|
|
467
474
|
export type VoiceMonitorRuntimeSessionBinding = {
|
|
468
475
|
deregister: (reason?: string) => void;
|
package/dist/index.js
CHANGED
|
@@ -4241,6 +4241,7 @@ var createVoiceSession = (options) => {
|
|
|
4241
4241
|
return;
|
|
4242
4242
|
}
|
|
4243
4243
|
activeTTSTurnId = undefined;
|
|
4244
|
+
Promise.resolve(socket.clear?.()).catch(() => {});
|
|
4244
4245
|
if (!ttsAdapterSessionCanCancel(activeSession)) {
|
|
4245
4246
|
return;
|
|
4246
4247
|
}
|
|
@@ -4887,6 +4888,9 @@ var createVoiceSession = (options) => {
|
|
|
4887
4888
|
};
|
|
4888
4889
|
};
|
|
4889
4890
|
const handlePartial = async (transcript) => {
|
|
4891
|
+
if (activeTTSTurnId !== undefined && transcript.text.trim()) {
|
|
4892
|
+
cancelActiveTTS("barge-in");
|
|
4893
|
+
}
|
|
4890
4894
|
const session = await writeSession((session2) => {
|
|
4891
4895
|
const nextPartialStartedAt = transcript.startedAtMs ?? session2.currentTurn.partialStartedAt;
|
|
4892
4896
|
const nextPartialEndedAt = transcript.endedAtMs ?? session2.currentTurn.partialEndedAt;
|
|
@@ -5660,9 +5664,6 @@ var createVoiceSession = (options) => {
|
|
|
5660
5664
|
if (amdFirstAudioAt === undefined) {
|
|
5661
5665
|
amdFirstAudioAt = Date.now();
|
|
5662
5666
|
}
|
|
5663
|
-
if (!speechDetected && activeTTSTurnId !== undefined) {
|
|
5664
|
-
cancelActiveTTS("barge-in");
|
|
5665
|
-
}
|
|
5666
5667
|
speechDetected = true;
|
|
5667
5668
|
clearSilenceTimer();
|
|
5668
5669
|
kickCallSilenceWatchdog();
|
|
@@ -24059,6 +24060,14 @@ var parseTwilioMessage = (raw) => {
|
|
|
24059
24060
|
return JSON.parse(raw);
|
|
24060
24061
|
};
|
|
24061
24062
|
var createTwilioSocketAdapter = (socket, getState) => ({
|
|
24063
|
+
clear: async () => {
|
|
24064
|
+
const state = getState();
|
|
24065
|
+
if (!state.streamSid) {
|
|
24066
|
+
return;
|
|
24067
|
+
}
|
|
24068
|
+
state.reviewRecorder?.recordTwilioOutbound({ event: "clear" });
|
|
24069
|
+
await Promise.resolve(socket.send(JSON.stringify({ event: "clear", streamSid: state.streamSid })));
|
|
24070
|
+
},
|
|
24062
24071
|
close: async (code, reason) => {
|
|
24063
24072
|
await Promise.resolve(socket.close(code, reason));
|
|
24064
24073
|
},
|
|
@@ -24323,7 +24332,7 @@ var createTwilioMediaStreamBridge = (socket, options) => {
|
|
|
24323
24332
|
event: "media",
|
|
24324
24333
|
track: message.media.track
|
|
24325
24334
|
});
|
|
24326
|
-
if (options.clearOnInboundMedia
|
|
24335
|
+
if (options.clearOnInboundMedia === true && bridgeState.hasOutboundAudioSinceLastInbound && bridgeState.streamSid) {
|
|
24327
24336
|
const outboundMessage = {
|
|
24328
24337
|
event: "clear",
|
|
24329
24338
|
streamSid: bridgeState.streamSid
|
package/dist/react/index.js
CHANGED
|
@@ -278,7 +278,9 @@ var defineVoiceOpsStatusElement = (tagName = "absolute-voice-ops-status") => {
|
|
|
278
278
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
279
279
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
280
280
|
})
|
|
281
|
-
} : {
|
|
281
|
+
} : {
|
|
282
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
283
|
+
}
|
|
282
284
|
});
|
|
283
285
|
}
|
|
284
286
|
disconnectedCallback() {
|
|
@@ -991,7 +993,9 @@ var defineVoiceDeliveryRuntimeElement = (tagName = "absolute-voice-delivery-runt
|
|
|
991
993
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
992
994
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
993
995
|
})
|
|
994
|
-
} : {
|
|
996
|
+
} : {
|
|
997
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
998
|
+
}
|
|
995
999
|
});
|
|
996
1000
|
}
|
|
997
1001
|
disconnectedCallback() {
|
|
@@ -6555,7 +6559,9 @@ var defineVoiceReconnectProfileEvidenceElement = (tagName = "absolute-voice-reco
|
|
|
6555
6559
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6556
6560
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6557
6561
|
})
|
|
6558
|
-
} : {
|
|
6562
|
+
} : {
|
|
6563
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6564
|
+
}
|
|
6559
6565
|
});
|
|
6560
6566
|
}
|
|
6561
6567
|
disconnectedCallback() {
|
|
@@ -7410,7 +7416,9 @@ var defineVoiceSessionObservabilityElement = (tagName = "absolute-voice-session-
|
|
|
7410
7416
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7411
7417
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7412
7418
|
})
|
|
7413
|
-
} : {
|
|
7419
|
+
} : {
|
|
7420
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7421
|
+
}
|
|
7414
7422
|
});
|
|
7415
7423
|
}
|
|
7416
7424
|
disconnectedCallback() {
|
|
@@ -7676,7 +7684,9 @@ var defineVoiceProfileComparisonElement = (tagName = "absolute-voice-profile-com
|
|
|
7676
7684
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7677
7685
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7678
7686
|
})
|
|
7679
|
-
} : {
|
|
7687
|
+
} : {
|
|
7688
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7689
|
+
}
|
|
7680
7690
|
});
|
|
7681
7691
|
}
|
|
7682
7692
|
disconnectedCallback() {
|
|
@@ -7930,7 +7940,9 @@ var defineVoiceProfileSwitchRecommendationElement = (tagName = "absolute-voice-p
|
|
|
7930
7940
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7931
7941
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7932
7942
|
})
|
|
7933
|
-
} : {
|
|
7943
|
+
} : {
|
|
7944
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7945
|
+
}
|
|
7934
7946
|
});
|
|
7935
7947
|
}
|
|
7936
7948
|
disconnectedCallback() {
|
|
@@ -8751,7 +8763,9 @@ var defineVoiceProviderCapabilitiesElement = (tagName = "absolute-voice-provider
|
|
|
8751
8763
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8752
8764
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8753
8765
|
})
|
|
8754
|
-
} : {
|
|
8766
|
+
} : {
|
|
8767
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8768
|
+
}
|
|
8755
8769
|
});
|
|
8756
8770
|
}
|
|
8757
8771
|
disconnectedCallback() {
|
|
@@ -9040,7 +9054,9 @@ var defineVoiceProviderContractsElement = (tagName = "absolute-voice-provider-co
|
|
|
9040
9054
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9041
9055
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9042
9056
|
})
|
|
9043
|
-
} : {
|
|
9057
|
+
} : {
|
|
9058
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9059
|
+
}
|
|
9044
9060
|
});
|
|
9045
9061
|
}
|
|
9046
9062
|
disconnectedCallback() {
|
|
@@ -9363,7 +9379,9 @@ var defineVoiceProviderStatusElement = (tagName = "absolute-voice-provider-statu
|
|
|
9363
9379
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9364
9380
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9365
9381
|
})
|
|
9366
|
-
} : {
|
|
9382
|
+
} : {
|
|
9383
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9384
|
+
}
|
|
9367
9385
|
});
|
|
9368
9386
|
}
|
|
9369
9387
|
disconnectedCallback() {
|
|
@@ -9694,7 +9712,9 @@ var defineVoiceRoutingStatusElement = (tagName = "absolute-voice-routing-status"
|
|
|
9694
9712
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9695
9713
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9696
9714
|
})
|
|
9697
|
-
} : {
|
|
9715
|
+
} : {
|
|
9716
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9717
|
+
}
|
|
9698
9718
|
});
|
|
9699
9719
|
}
|
|
9700
9720
|
disconnectedCallback() {
|
|
@@ -9932,7 +9952,9 @@ var defineVoiceTraceTimelineElement = (tagName = "absolute-voice-trace-timeline"
|
|
|
9932
9952
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9933
9953
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9934
9954
|
})
|
|
9935
|
-
} : {
|
|
9955
|
+
} : {
|
|
9956
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9957
|
+
}
|
|
9936
9958
|
});
|
|
9937
9959
|
}
|
|
9938
9960
|
disconnectedCallback() {
|
|
@@ -10520,7 +10542,9 @@ var defineVoiceTurnLatencyElement = (tagName = "absolute-voice-turn-latency") =>
|
|
|
10520
10542
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
10521
10543
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
10522
10544
|
})
|
|
10523
|
-
} : {
|
|
10545
|
+
} : {
|
|
10546
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
10547
|
+
}
|
|
10524
10548
|
});
|
|
10525
10549
|
}
|
|
10526
10550
|
disconnectedCallback() {
|
|
@@ -10837,7 +10861,9 @@ var defineVoiceTurnQualityElement = (tagName = "absolute-voice-turn-quality") =>
|
|
|
10837
10861
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
10838
10862
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
10839
10863
|
})
|
|
10840
|
-
} : {
|
|
10864
|
+
} : {
|
|
10865
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
10866
|
+
}
|
|
10841
10867
|
});
|
|
10842
10868
|
}
|
|
10843
10869
|
disconnectedCallback() {
|
package/dist/svelte/index.js
CHANGED
|
@@ -2646,7 +2646,9 @@ var defineVoiceDeliveryRuntimeElement = (tagName = "absolute-voice-delivery-runt
|
|
|
2646
2646
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
2647
2647
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
2648
2648
|
})
|
|
2649
|
-
} : {
|
|
2649
|
+
} : {
|
|
2650
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
2651
|
+
}
|
|
2650
2652
|
});
|
|
2651
2653
|
}
|
|
2652
2654
|
disconnectedCallback() {
|
|
@@ -4737,7 +4739,9 @@ var defineVoiceOpsStatusElement = (tagName = "absolute-voice-ops-status") => {
|
|
|
4737
4739
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
4738
4740
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
4739
4741
|
})
|
|
4740
|
-
} : {
|
|
4742
|
+
} : {
|
|
4743
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
4744
|
+
}
|
|
4741
4745
|
});
|
|
4742
4746
|
}
|
|
4743
4747
|
disconnectedCallback() {
|
|
@@ -5661,7 +5665,9 @@ var defineVoiceSessionObservabilityElement = (tagName = "absolute-voice-session-
|
|
|
5661
5665
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
5662
5666
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
5663
5667
|
})
|
|
5664
|
-
} : {
|
|
5668
|
+
} : {
|
|
5669
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
5670
|
+
}
|
|
5665
5671
|
});
|
|
5666
5672
|
}
|
|
5667
5673
|
disconnectedCallback() {
|
|
@@ -6232,7 +6238,9 @@ var defineVoiceProviderCapabilitiesElement = (tagName = "absolute-voice-provider
|
|
|
6232
6238
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6233
6239
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6234
6240
|
})
|
|
6235
|
-
} : {
|
|
6241
|
+
} : {
|
|
6242
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6243
|
+
}
|
|
6236
6244
|
});
|
|
6237
6245
|
}
|
|
6238
6246
|
disconnectedCallback() {
|
|
@@ -6431,7 +6439,9 @@ var defineVoiceProviderContractsElement = (tagName = "absolute-voice-provider-co
|
|
|
6431
6439
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6432
6440
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6433
6441
|
})
|
|
6434
|
-
} : {
|
|
6442
|
+
} : {
|
|
6443
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6444
|
+
}
|
|
6435
6445
|
});
|
|
6436
6446
|
}
|
|
6437
6447
|
disconnectedCallback() {
|
|
@@ -6650,7 +6660,9 @@ var defineVoiceProviderStatusElement = (tagName = "absolute-voice-provider-statu
|
|
|
6650
6660
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6651
6661
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6652
6662
|
})
|
|
6653
|
-
} : {
|
|
6663
|
+
} : {
|
|
6664
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6665
|
+
}
|
|
6654
6666
|
});
|
|
6655
6667
|
}
|
|
6656
6668
|
disconnectedCallback() {
|
|
@@ -6891,7 +6903,9 @@ var defineVoiceRoutingStatusElement = (tagName = "absolute-voice-routing-status"
|
|
|
6891
6903
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6892
6904
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6893
6905
|
})
|
|
6894
|
-
} : {
|
|
6906
|
+
} : {
|
|
6907
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6908
|
+
}
|
|
6895
6909
|
});
|
|
6896
6910
|
}
|
|
6897
6911
|
disconnectedCallback() {
|
|
@@ -7082,7 +7096,9 @@ var defineVoiceTraceTimelineElement = (tagName = "absolute-voice-trace-timeline"
|
|
|
7082
7096
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7083
7097
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7084
7098
|
})
|
|
7085
|
-
} : {
|
|
7099
|
+
} : {
|
|
7100
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7101
|
+
}
|
|
7086
7102
|
});
|
|
7087
7103
|
}
|
|
7088
7104
|
disconnectedCallback() {
|
|
@@ -7476,7 +7492,9 @@ var defineVoiceTurnLatencyElement = (tagName = "absolute-voice-turn-latency") =>
|
|
|
7476
7492
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7477
7493
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7478
7494
|
})
|
|
7479
|
-
} : {
|
|
7495
|
+
} : {
|
|
7496
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7497
|
+
}
|
|
7480
7498
|
});
|
|
7481
7499
|
}
|
|
7482
7500
|
disconnectedCallback() {
|
|
@@ -7698,7 +7716,9 @@ var defineVoiceTurnQualityElement = (tagName = "absolute-voice-turn-quality") =>
|
|
|
7698
7716
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7699
7717
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7700
7718
|
})
|
|
7701
|
-
} : {
|
|
7719
|
+
} : {
|
|
7720
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7721
|
+
}
|
|
7702
7722
|
});
|
|
7703
7723
|
}
|
|
7704
7724
|
disconnectedCallback() {
|
|
@@ -79,6 +79,14 @@ export type TwilioMediaStreamSocket = {
|
|
|
79
79
|
send: (data: string) => void | Promise<void>;
|
|
80
80
|
};
|
|
81
81
|
export type TwilioMediaStreamBridgeOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoicePluginConfig<TContext, TSession, TResult>, "htmx" | "path" | "stt"> & {
|
|
82
|
+
/**
|
|
83
|
+
* Legacy barge-in: send the carrier a "clear" on every inbound media frame
|
|
84
|
+
* once the assistant has spoken. Defaults to `false` — a phone line streams
|
|
85
|
+
* inbound audio continuously (silence included), so this flushes the
|
|
86
|
+
* assistant constantly. Barge-in is handled speech-gated by the session
|
|
87
|
+
* (`socket.clear()` on detected speech); only set `true` to force the old
|
|
88
|
+
* frame-level behavior.
|
|
89
|
+
*/
|
|
82
90
|
clearOnInboundMedia?: boolean;
|
|
83
91
|
context: TContext;
|
|
84
92
|
logger?: VoiceLogger;
|
package/dist/testing/index.js
CHANGED
|
@@ -6103,6 +6103,7 @@ var createVoiceSession = (options) => {
|
|
|
6103
6103
|
return;
|
|
6104
6104
|
}
|
|
6105
6105
|
activeTTSTurnId = undefined;
|
|
6106
|
+
Promise.resolve(socket.clear?.()).catch(() => {});
|
|
6106
6107
|
if (!ttsAdapterSessionCanCancel(activeSession)) {
|
|
6107
6108
|
return;
|
|
6108
6109
|
}
|
|
@@ -6749,6 +6750,9 @@ var createVoiceSession = (options) => {
|
|
|
6749
6750
|
};
|
|
6750
6751
|
};
|
|
6751
6752
|
const handlePartial = async (transcript) => {
|
|
6753
|
+
if (activeTTSTurnId !== undefined && transcript.text.trim()) {
|
|
6754
|
+
cancelActiveTTS("barge-in");
|
|
6755
|
+
}
|
|
6752
6756
|
const session = await writeSession((session2) => {
|
|
6753
6757
|
const nextPartialStartedAt = transcript.startedAtMs ?? session2.currentTurn.partialStartedAt;
|
|
6754
6758
|
const nextPartialEndedAt = transcript.endedAtMs ?? session2.currentTurn.partialEndedAt;
|
|
@@ -7522,9 +7526,6 @@ var createVoiceSession = (options) => {
|
|
|
7522
7526
|
if (amdFirstAudioAt === undefined) {
|
|
7523
7527
|
amdFirstAudioAt = Date.now();
|
|
7524
7528
|
}
|
|
7525
|
-
if (!speechDetected && activeTTSTurnId !== undefined) {
|
|
7526
|
-
cancelActiveTTS("barge-in");
|
|
7527
|
-
}
|
|
7528
7529
|
speechDetected = true;
|
|
7529
7530
|
clearSilenceTimer();
|
|
7530
7531
|
kickCallSilenceWatchdog();
|
|
@@ -12737,6 +12738,14 @@ var parseTwilioMessage = (raw) => {
|
|
|
12737
12738
|
return JSON.parse(raw);
|
|
12738
12739
|
};
|
|
12739
12740
|
var createTwilioSocketAdapter = (socket, getState) => ({
|
|
12741
|
+
clear: async () => {
|
|
12742
|
+
const state = getState();
|
|
12743
|
+
if (!state.streamSid) {
|
|
12744
|
+
return;
|
|
12745
|
+
}
|
|
12746
|
+
state.reviewRecorder?.recordTwilioOutbound({ event: "clear" });
|
|
12747
|
+
await Promise.resolve(socket.send(JSON.stringify({ event: "clear", streamSid: state.streamSid })));
|
|
12748
|
+
},
|
|
12740
12749
|
close: async (code, reason) => {
|
|
12741
12750
|
await Promise.resolve(socket.close(code, reason));
|
|
12742
12751
|
},
|
|
@@ -13001,7 +13010,7 @@ var createTwilioMediaStreamBridge = (socket, options) => {
|
|
|
13001
13010
|
event: "media",
|
|
13002
13011
|
track: message.media.track
|
|
13003
13012
|
});
|
|
13004
|
-
if (options.clearOnInboundMedia
|
|
13013
|
+
if (options.clearOnInboundMedia === true && bridgeState.hasOutboundAudioSinceLastInbound && bridgeState.streamSid) {
|
|
13005
13014
|
const outboundMessage = {
|
|
13006
13015
|
event: "clear",
|
|
13007
13016
|
streamSid: bridgeState.streamSid
|
package/dist/vue/index.js
CHANGED
|
@@ -261,7 +261,9 @@ var defineVoiceOpsStatusElement = (tagName = "absolute-voice-ops-status") => {
|
|
|
261
261
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
262
262
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
263
263
|
})
|
|
264
|
-
} : {
|
|
264
|
+
} : {
|
|
265
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
266
|
+
}
|
|
265
267
|
});
|
|
266
268
|
}
|
|
267
269
|
disconnectedCallback() {
|
|
@@ -1002,7 +1004,9 @@ var defineVoiceDeliveryRuntimeElement = (tagName = "absolute-voice-delivery-runt
|
|
|
1002
1004
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
1003
1005
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
1004
1006
|
})
|
|
1005
|
-
} : {
|
|
1007
|
+
} : {
|
|
1008
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
1009
|
+
}
|
|
1006
1010
|
});
|
|
1007
1011
|
}
|
|
1008
1012
|
disconnectedCallback() {
|
|
@@ -6588,7 +6592,9 @@ var defineVoiceReconnectProfileEvidenceElement = (tagName = "absolute-voice-reco
|
|
|
6588
6592
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
6589
6593
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
6590
6594
|
})
|
|
6591
|
-
} : {
|
|
6595
|
+
} : {
|
|
6596
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
6597
|
+
}
|
|
6592
6598
|
});
|
|
6593
6599
|
}
|
|
6594
6600
|
disconnectedCallback() {
|
|
@@ -7459,7 +7465,9 @@ var defineVoiceSessionObservabilityElement = (tagName = "absolute-voice-session-
|
|
|
7459
7465
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
7460
7466
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
7461
7467
|
})
|
|
7462
|
-
} : {
|
|
7468
|
+
} : {
|
|
7469
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
7470
|
+
}
|
|
7463
7471
|
});
|
|
7464
7472
|
}
|
|
7465
7473
|
disconnectedCallback() {
|
|
@@ -8293,7 +8301,9 @@ var defineVoiceProviderCapabilitiesElement = (tagName = "absolute-voice-provider
|
|
|
8293
8301
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8294
8302
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8295
8303
|
})
|
|
8296
|
-
} : {
|
|
8304
|
+
} : {
|
|
8305
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8306
|
+
}
|
|
8297
8307
|
});
|
|
8298
8308
|
}
|
|
8299
8309
|
disconnectedCallback() {
|
|
@@ -8623,7 +8633,9 @@ var defineVoiceProviderContractsElement = (tagName = "absolute-voice-provider-co
|
|
|
8623
8633
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8624
8634
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8625
8635
|
})
|
|
8626
|
-
} : {
|
|
8636
|
+
} : {
|
|
8637
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8638
|
+
}
|
|
8627
8639
|
});
|
|
8628
8640
|
}
|
|
8629
8641
|
disconnectedCallback() {
|
|
@@ -8907,7 +8919,9 @@ var defineVoiceProviderStatusElement = (tagName = "absolute-voice-provider-statu
|
|
|
8907
8919
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
8908
8920
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
8909
8921
|
})
|
|
8910
|
-
} : {
|
|
8922
|
+
} : {
|
|
8923
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
8924
|
+
}
|
|
8911
8925
|
});
|
|
8912
8926
|
}
|
|
8913
8927
|
disconnectedCallback() {
|
|
@@ -9246,7 +9260,9 @@ var defineVoiceRoutingStatusElement = (tagName = "absolute-voice-routing-status"
|
|
|
9246
9260
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9247
9261
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9248
9262
|
})
|
|
9249
|
-
} : {
|
|
9263
|
+
} : {
|
|
9264
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9265
|
+
}
|
|
9250
9266
|
});
|
|
9251
9267
|
}
|
|
9252
9268
|
disconnectedCallback() {
|
|
@@ -9739,7 +9755,9 @@ var defineVoiceTurnLatencyElement = (tagName = "absolute-voice-turn-latency") =>
|
|
|
9739
9755
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
9740
9756
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
9741
9757
|
})
|
|
9742
|
-
} : {
|
|
9758
|
+
} : {
|
|
9759
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
9760
|
+
}
|
|
9743
9761
|
});
|
|
9744
9762
|
}
|
|
9745
9763
|
disconnectedCallback() {
|
|
@@ -10055,7 +10073,9 @@ var defineVoiceTurnQualityElement = (tagName = "absolute-voice-turn-quality") =>
|
|
|
10055
10073
|
reactiveSource: voiceSseReactiveSource(reactiveTopic, {
|
|
10056
10074
|
path: this.getAttribute("reactive-path") ?? undefined
|
|
10057
10075
|
})
|
|
10058
|
-
} : {
|
|
10076
|
+
} : {
|
|
10077
|
+
intervalMs: Number.isFinite(intervalMs) ? intervalMs : 5000
|
|
10078
|
+
}
|
|
10059
10079
|
});
|
|
10060
10080
|
}
|
|
10061
10081
|
disconnectedCallback() {
|