@talk2view/sdk 0.21.0 → 0.21.2
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/chat/voice-button.d.ts +3 -1
- package/dist/chat/voice-button.d.ts.map +1 -1
- package/dist/chat/voice-button.js +26 -6
- package/dist/chat/voice-button.js.map +1 -1
- package/dist/chat-css.js +1 -1
- package/dist/chat.css +1 -1
- package/dist/chat.isolated.css +21 -0
- package/dist/chat.raw.css +21 -0
- package/package.json +1 -1
|
@@ -34,6 +34,8 @@ export interface VoiceButtonProps {
|
|
|
34
34
|
export declare function shouldShowVoice(features: Pick<Talk2ViewChatFeatures, 'voice'>, config: PartnerConfig | null): boolean;
|
|
35
35
|
/** Two rising notes, about 200 ms, from the Web Audio API. Nothing is fetched. */
|
|
36
36
|
export declare function playListeningEarcon(): void;
|
|
37
|
-
export declare function voiceErrorMessage(error: VoiceError
|
|
37
|
+
export declare function voiceErrorMessage(error: VoiceError, who?: {
|
|
38
|
+
anonymous?: boolean;
|
|
39
|
+
}): string;
|
|
38
40
|
export declare const VoiceButton: FC<VoiceButtonProps>;
|
|
39
41
|
//# sourceMappingURL=voice-button.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-button.d.ts","sourceRoot":"","sources":["../../src/chat/voice-button.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA4C,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EAGX,MAAM,aAAa,CAAC;AAIrB,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAC9C,MAAM,EAAE,aAAa,GAAG,IAAI,GAC3B,OAAO,CAET;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,IAAI,IAAI,CA0B1C;
|
|
1
|
+
{"version":3,"file":"voice-button.d.ts","sourceRoot":"","sources":["../../src/chat/voice-button.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAA4C,KAAK,EAAE,EAAkB,MAAM,OAAO,CAAC;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EAGX,MAAM,aAAa,CAAC;AAIrB,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+FAA+F;AAC/F,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,EAC9C,MAAM,EAAE,aAAa,GAAG,IAAI,GAC3B,OAAO,CAET;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,IAAI,IAAI,CA0B1C;AA2BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAG9F;AAYD,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAS5C,CAAC"}
|
|
@@ -64,7 +64,7 @@ const ERROR_MESSAGES = {
|
|
|
64
64
|
voice_disabled: 'Voice isn’t turned on for this app.',
|
|
65
65
|
account_required: 'Sign in to use voice.',
|
|
66
66
|
auth_expired: 'Your sign-in expired. Sign in again to use voice.',
|
|
67
|
-
insufficient_credit: 'You’re out of
|
|
67
|
+
insufficient_credit: 'You’re out of credits. Upgrade your plan to keep going.',
|
|
68
68
|
credit_check_unavailable: 'Couldn’t check your credit just now. Try again shortly.',
|
|
69
69
|
service_unconfigured: 'Voice isn’t available right now.',
|
|
70
70
|
service_unavailable: 'Voice isn’t available right now. Try again shortly.',
|
|
@@ -74,7 +74,11 @@ const ERROR_MESSAGES = {
|
|
|
74
74
|
transport_error: 'The call couldn’t connect. Check your connection and try again.',
|
|
75
75
|
mic_unavailable: 'Voice needs microphone access. Allow the microphone and try again.',
|
|
76
76
|
};
|
|
77
|
-
|
|
77
|
+
/** Out of credit as a guest: signing in or creating an account is the way on. */
|
|
78
|
+
const GUEST_OUT_OF_CREDIT = 'You’ve used your free credits. Sign in or create an account to keep going.';
|
|
79
|
+
export function voiceErrorMessage(error, who = {}) {
|
|
80
|
+
if (error.type === 'insufficient_credit' && who.anonymous)
|
|
81
|
+
return GUEST_OUT_OF_CREDIT;
|
|
78
82
|
return ERROR_MESSAGES[error.type] ?? (error.message || 'Something went wrong with voice. Try again.');
|
|
79
83
|
}
|
|
80
84
|
/** Why a call ended, when it was not the end-user's own press. */
|
|
@@ -108,6 +112,10 @@ const VoiceControl = ({ client, standalone, className, label = 'Talk to Talk2Vie
|
|
|
108
112
|
const [approval, setApproval] = useState(null);
|
|
109
113
|
const [working, setWorking] = useState(false);
|
|
110
114
|
const [endedNote, setEndedNote] = useState(null);
|
|
115
|
+
// Whether the end-user has spoken on this call. Until they do, the popover
|
|
116
|
+
// says "Say hi!": the bot does not greet, so a first-time user otherwise sits
|
|
117
|
+
// in silence not knowing the call is waiting on them.
|
|
118
|
+
const [heard, setHeard] = useState(false);
|
|
111
119
|
// Read by the listeners, so changing the prop does not re-subscribe.
|
|
112
120
|
const earconRef = useRef(earcon);
|
|
113
121
|
earconRef.current = earcon;
|
|
@@ -123,12 +131,22 @@ const VoiceControl = ({ client, standalone, className, label = 'Talk to Talk2Vie
|
|
|
123
131
|
setError(null);
|
|
124
132
|
setEndedNote(null);
|
|
125
133
|
}
|
|
134
|
+
if (next === 'connecting')
|
|
135
|
+
setHeard(false);
|
|
126
136
|
if (next === 'listening' && earconRef.current)
|
|
127
137
|
playListeningEarcon();
|
|
128
138
|
}),
|
|
129
139
|
voice.on('error', setError),
|
|
130
140
|
voice.on('approvalChange', setApproval),
|
|
131
|
-
voice.on('agentState', (agent) =>
|
|
141
|
+
voice.on('agentState', (agent) => {
|
|
142
|
+
setWorking(agent === 'working');
|
|
143
|
+
if (agent === 'working')
|
|
144
|
+
setHeard(true); // it only works on something they said
|
|
145
|
+
}),
|
|
146
|
+
voice.on('transcript', (t) => {
|
|
147
|
+
if (t.role === 'user' && t.text.trim())
|
|
148
|
+
setHeard(true);
|
|
149
|
+
}),
|
|
132
150
|
voice.on('ended', (reason) => setEndedNote(ENDED_MESSAGES[reason] ?? null)),
|
|
133
151
|
];
|
|
134
152
|
return () => offs.forEach((off) => off());
|
|
@@ -162,7 +180,9 @@ const VoiceControl = ({ client, standalone, className, label = 'Talk to Talk2Vie
|
|
|
162
180
|
: state === 'listening'
|
|
163
181
|
? working
|
|
164
182
|
? 'Working…'
|
|
165
|
-
:
|
|
183
|
+
: heard
|
|
184
|
+
? 'Listening'
|
|
185
|
+
: 'Say hi!'
|
|
166
186
|
: state === 'ended' && !error
|
|
167
187
|
? endedNote
|
|
168
188
|
: null;
|
|
@@ -171,9 +191,9 @@ const VoiceControl = ({ client, standalone, className, label = 'Talk to Talk2Vie
|
|
|
171
191
|
_jsx(BrandWaveform, { mode: working ? 'busy' : 'live', className: "h-[20px] w-[22px]" })) : (
|
|
172
192
|
// The dictation mark at rest, the same face the composer's dictate button wears.
|
|
173
193
|
_jsx(BrandWaveform, { mode: "rest", className: "h-[20px] w-[22px]" }));
|
|
174
|
-
return (_jsxs("div", { className: cn('t2v-voice', standalone && 't2v-chat', className), "data-on": on ? '' : undefined, children: [error || approval || status ? (_jsxs("div", { className: "t2v-voice-popover", children: [error ? (_jsxs("div", { role: "alert", className: "t2v-voice-error", children: [_jsx("span", { children: voiceErrorMessage(error) }), _jsx("button", { type: "button", className: "t2v-voice-dismiss", "aria-label": "Dismiss", onClick: () => setError(null), children: _jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })] })) : null, approval ? (_jsx("div", { className: "t2v-voice-approval", children: _jsx(ApprovalCard
|
|
194
|
+
return (_jsxs("div", { className: cn('t2v-voice', standalone && 't2v-chat', className), "data-on": on ? '' : undefined, children: [error || approval || status ? (_jsxs("div", { className: "t2v-voice-popover", children: [error ? (_jsxs("div", { role: "alert", className: "t2v-voice-error", children: [_jsx("span", { children: voiceErrorMessage(error, { anonymous: client.auth?.isAnonymous?.() ?? false }) }), _jsx("button", { type: "button", className: "t2v-voice-dismiss", "aria-label": "Dismiss", onClick: () => setError(null), children: _jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })] })) : null, approval ? (_jsx("div", { className: "t2v-voice-approval", children: _jsx(ApprovalCard
|
|
175
195
|
// A new card per call: a half-edited argument must not carry over.
|
|
176
|
-
, { toolName: approval.toolName, toolCallId: approval.toolCallId, args: approval.arguments, description: approval.description, onDecision: (decision) => approval.decide(decision) }, approval.toolCallId) })) : null, status && !error ? (_jsx("div", { "aria-hidden": "true", className: "t2v-voice-status", children: status })) : null] })) : null, _jsx("span", { role: "status", className: "t2v-voice-sr", children: error ? '' : (status ?? '') }), _jsx("button", { type: "button", className: "t2v-voice-button", onClick: toggle,
|
|
196
|
+
, { toolName: approval.toolName, toolCallId: approval.toolCallId, args: approval.arguments, description: approval.description, onDecision: (decision) => approval.decide(decision) }, approval.toolCallId) })) : null, status && !error ? (_jsx("div", { "aria-hidden": "true", className: "t2v-voice-status", "data-hint": status === 'Say hi!' ? '' : undefined, children: status })) : null] })) : null, _jsx("span", { role: "status", className: "t2v-voice-sr", children: error ? '' : (status ?? '') }), _jsx("button", { type: "button", className: "t2v-voice-button", onClick: toggle,
|
|
177
197
|
// Fetch the voice code while the pointer is on its way to a click.
|
|
178
198
|
onPointerEnter: preload, onFocus: preload, "aria-label": label, title: on ? 'End the call' : label, "aria-pressed": on, "aria-busy": state === 'connecting' || undefined, "data-state": state, "data-busy": working ? 'true' : undefined, children: icon })] }));
|
|
179
199
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voice-button.js","sourceRoot":"","sources":["../../src/chat/voice-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAA2B,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AASvD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAA8B,MAAM,eAAe,CAAC;AAiBnF,+FAA+F;AAC/F,MAAM,UAAU,eAAe,CAC7B,QAA8C,EAC9C,MAA4B;IAE5B,OAAO,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,EAAE,mBAAmB,CAAC;AACnE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GACP,MAAM,CAAC,YAAY;YAClB,MAAkE,CAAC,kBAAkB,CAAC;QACzF,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;YACvB,CAAC,GAAG,EAAE,CAAC,CAAC;YACR,CAAC,GAAG,EAAE,IAAI,CAAC;SACH,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAChE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3C,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YACpB,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,cAAc,GAA2B;IAC7C,cAAc,EAAE,qCAAqC;IACrD,gBAAgB,EAAE,uBAAuB;IACzC,YAAY,EAAE,mDAAmD;IACjE,mBAAmB,EAAE
|
|
1
|
+
{"version":3,"file":"voice-button.js","sourceRoot":"","sources":["../../src/chat/voice-button.tsx"],"names":[],"mappings":"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"}
|