@talk2view/sdk 0.21.3 → 0.22.0
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 +137 -50
- package/dist/assistant-ui/index.d.ts.map +1 -1
- package/dist/assistant-ui/index.js +12 -7
- package/dist/assistant-ui/index.js.map +1 -1
- package/dist/auth.d.ts +23 -4
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +48 -22
- package/dist/auth.js.map +1 -1
- package/dist/chat/lib/use-conversations.d.ts.map +1 -1
- package/dist/chat/lib/use-conversations.js +23 -6
- package/dist/chat/lib/use-conversations.js.map +1 -1
- package/dist/chat/provider.d.ts +20 -2
- package/dist/chat/provider.d.ts.map +1 -1
- package/dist/chat/provider.js +3 -1
- package/dist/chat/provider.js.map +1 -1
- package/dist/chat/views/account.d.ts.map +1 -1
- package/dist/chat/views/account.js +22 -9
- package/dist/chat/views/account.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +15 -5
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +32 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -10
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +31 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -10
- package/dist/index.js.map +1 -1
- package/dist/sessions.d.ts.map +1 -1
- package/dist/sessions.js +1 -0
- package/dist/sessions.js.map +1 -1
- package/dist/storage.d.ts +6 -0
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +6 -0
- package/dist/storage.js.map +1 -1
- package/dist/tools.d.ts +2 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +23 -10
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/components/ChatPanel.d.ts +5 -1
- package/dist/ui/components/ChatPanel.d.ts.map +1 -1
- package/dist/ui/components/ChatPanel.js +5 -1
- package/dist/ui/components/ChatPanel.js.map +1 -1
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +9 -0
- package/dist/version.js.map +1 -0
- package/docs/chat.md +86 -15
- package/docs/voice.md +18 -8
- package/package.json +7 -7
package/dist/client.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HTTP/SSE API client with two-tier auth (partner key + user JWT).
|
|
3
3
|
*/
|
|
4
|
-
import { AuthenticationError, NetworkError, PartnerKeyError, errorForType, } from './errors.js';
|
|
4
|
+
import { AuthenticationError, NetworkError, PartnerKeyError, SESSION_EXPIRED_MESSAGE, errorForType, parseRetryAfter, } from './errors.js';
|
|
5
5
|
import { clearAuth, getAccessToken, getRefreshToken, setAccessToken, setRefreshToken, } from './storage.js';
|
|
6
6
|
import { decodeSSEStream } from './streaming.js';
|
|
7
|
+
import { CLIENT_HEADER } from './version.js';
|
|
7
8
|
const DEFAULT_BASE_URL = 'https://engine.talk2view.com';
|
|
8
9
|
const DEFAULT_REQUEST_TIMEOUT = 30_000;
|
|
9
10
|
// Uploads (attachments, audio) move real bytes — a multi-MB file on a slow link
|
|
@@ -22,8 +23,9 @@ const DEFAULT_UPLOAD_TIMEOUT = 120_000;
|
|
|
22
23
|
*/
|
|
23
24
|
function assertPartnerKey(partnerKey) {
|
|
24
25
|
if (typeof partnerKey !== 'string' || partnerKey.trim() === '') {
|
|
25
|
-
throw new PartnerKeyError('No partner key. Pass `partnerKey` when creating the client
|
|
26
|
-
'
|
|
26
|
+
throw new PartnerKeyError('No partner key. Pass `partnerKey` when creating the client. Talk2View is in ' +
|
|
27
|
+
'private beta — request a partner key at ' +
|
|
28
|
+
'https://talk2view.com/resources/contact?subject=partner-key (see https://docs.talk2view.com).', 'partner_key_error', 0);
|
|
27
29
|
}
|
|
28
30
|
// `pk_` and nothing more. The rest of a key's shape is the engine's to know,
|
|
29
31
|
// and a check that encoded today's format would reject tomorrow's. What this
|
|
@@ -112,7 +114,13 @@ export class T2VClient {
|
|
|
112
114
|
const code = typeof err.code === 'string' ? err.code : undefined;
|
|
113
115
|
// Keep the raw detail for debugging only — out of the user-facing message.
|
|
114
116
|
const detail = typeof err.detail === 'string' ? err.detail : undefined;
|
|
115
|
-
|
|
117
|
+
// `headers` is optional here only so a hand-built Response still works.
|
|
118
|
+
const header = (name) => response.headers?.get(name) ?? null;
|
|
119
|
+
const requestId = (typeof err.request_id === 'string' ? err.request_id : undefined) ??
|
|
120
|
+
header('X-Request-Id') ??
|
|
121
|
+
undefined;
|
|
122
|
+
const retryAfter = parseRetryAfter(header('Retry-After'));
|
|
123
|
+
return errorForType(safeMessage, type, response.status, code, detail, { requestId, retryAfter });
|
|
116
124
|
}
|
|
117
125
|
/**
|
|
118
126
|
* Execute a fetch with network-error wrapping, 401 refresh/retry, and error parsing.
|
|
@@ -160,7 +168,7 @@ export class T2VClient {
|
|
|
160
168
|
if (result === 'invalid') {
|
|
161
169
|
// The refresh token is genuinely dead — this is a real logout.
|
|
162
170
|
clearAuth();
|
|
163
|
-
throw new AuthenticationError(
|
|
171
|
+
throw new AuthenticationError(SESSION_EXPIRED_MESSAGE);
|
|
164
172
|
}
|
|
165
173
|
// transient: the session is still valid, we just couldn't refresh right
|
|
166
174
|
// now. Surface a retryable error WITHOUT clearing auth.
|
|
@@ -174,6 +182,7 @@ export class T2VClient {
|
|
|
174
182
|
buildHeaders(requiresAuth, extra) {
|
|
175
183
|
const headers = {
|
|
176
184
|
'X-T2V-Partner-Key': this.partnerKey,
|
|
185
|
+
'X-T2V-Client': CLIENT_HEADER,
|
|
177
186
|
...extra,
|
|
178
187
|
};
|
|
179
188
|
if (requiresAuth) {
|
|
@@ -317,6 +326,7 @@ export class T2VClient {
|
|
|
317
326
|
headers: {
|
|
318
327
|
'Content-Type': 'application/json',
|
|
319
328
|
'X-T2V-Partner-Key': this.partnerKey,
|
|
329
|
+
'X-T2V-Client': CLIENT_HEADER,
|
|
320
330
|
},
|
|
321
331
|
body: JSON.stringify({ refresh_token: refreshToken }),
|
|
322
332
|
signal,
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,eAAe,EAEf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOjD,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AACxD,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,gFAAgF;AAChF,kFAAkF;AAClF,MAAM,sBAAsB,GAAG,OAAO,CAAC;AAYvC;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,UAAmB;IAC3C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,eAAe,CACvB,+DAA+D;YAC7D,6CAA6C,EAC/C,mBAAmB,EACnB,CAAC,CACF,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,6EAA6E;IAC7E,sEAAsE;IACtE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,eAAe,CACvB,2CAA2C,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM;YACtE,qEAAqE;YACrE,uDAAuD,EACzD,mBAAmB,EACnB,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClF,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK;YAAE,OAAO;QAC9C,OAAO,CAAC,IAAI,CACV,0BAA0B,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,8BAA8B;YAC/E,mFAAmF,CACtF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,2CAA2C,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,OAAO,SAAS;IACH,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,cAAc,CAAS;IAChC,YAAY,GAAG,KAAK,CAAC;IACrB,cAAc,GAAkC,IAAI,CAAC;IAE7D,YAAY,MAAiB;QAC3B,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;QAClD,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,uBAAuB,CAAC;QACvE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAgB;QACxC,MAAM,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,2BAA2B,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,EAC3F,EAAE,CACH,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IACzE,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,MAAoB;QACvC,MAAM,MAAM,GAAG,MAAM,EAAE,MAAyD,CAAC;QACjF,OAAO,IAAI,YAAY,CACrB,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YACnE,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC,2BAA2B,IAAI,CAAC,cAAc,IAAI,CACvD,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QAChD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,2EAA2E;QAC3E,MAAM,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,MAAM,WAAW,GACf,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO;YAC5C,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,wBAAwB,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACjE,2EAA2E;QAC3E,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,OAAO,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,QAAgB,EAChB,IAAiB,EACjB,OAA+B,EAC/B,YAAqB,EACrB,MAAoB;QAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/E,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,uEAAuE;YACvE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,IAAI,YAAY,CACpB,mBAAmB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;YAC5C,kEAAkE;YAClE,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,YAAY,YAAY,eAAe;gBAAE,MAAM,YAAY,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBAC3B,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,cAAc,EAAE,EAAE,CAAC;gBACxD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC/E,IAAI,aAAuB,CAAC;gBAC5B,IAAI,CAAC;oBACH,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC;gBACvE,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;wBACpB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAClC,CAAC;oBACD,MAAM,IAAI,YAAY,CACpB,mBAAmB,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACpF,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACtB,MAAM,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,+DAA+D;gBAC/D,SAAS,EAAE,CAAC;gBACZ,MAAM,IAAI,mBAAmB,CAAC,uCAAuC,CAAC,CAAC;YACzE,CAAC;YACD,wEAAwE;YACxE,wDAAwD;YACxD,MAAM,IAAI,YAAY,CAAC,sDAAsD,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY,CAClB,YAAqB,EACrB,KAA8B;QAE9B,MAAM,OAAO,GAA2B;YACtC,mBAAmB,EAAE,IAAI,CAAC,UAAU;YACpC,GAAG,KAAK;SACT,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;YAC/B,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,KAAK,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,QAAgB,EAAE,MAA8B;QAC5D,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,OAAO,kBAAkB,QAAQ,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,UAAuB,EAAE,EACzB,YAAY,GAAG,IAAI,EACnB,OAAgB;QAEhB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YAC9C,cAAc,EAAE,kBAAkB;YAClC,GAAI,OAAO,CAAC,OAA8C;SAC3D,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC5F,mFAAmF;YACnF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,SAAc,CAAC;YACnD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,QAAkB,EAClB,YAAY,GAAG,IAAI,EACnB,UAAkB,sBAAsB;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,QAAQ,EACR,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClC,OAAO,EACP,YAAY,EACZ,MAAM,CACP,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,CAAC,aAAa,CAClB,QAAgB,EAChB,IAAY,EACZ,cAA4B;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAChF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE5C,2EAA2E;QAC3E,2EAA2E;QAC3E,8EAA8E;QAC9E,0EAA0E;QAC1E,6EAA6E;QAC7E,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CACtB,GAAG,EAAE,CACH,UAAU,CAAC,KAAK,CACd,IAAI,YAAY,CAAC,2BAA2B,IAAI,CAAC,cAAc,IAAI,EAAE,cAAc,CAAC,CACrF,EACH,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACjD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,cAAc,CAAC,OAAO;gBAAE,UAAU,CAAC,KAAK,EAAE,CAAC;;gBAC1C,cAAc,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACjC,QAAQ,EACR,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,EACxC,OAAO,EACP,IAAI,EACJ,UAAU,CAAC,MAAM,CAClB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,cAAc,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC9D,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,KAAK,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,cAAc,EAAE,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,cAAe,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,uEAAuE;QACvE,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAEpC,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,EAAE;gBACxD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,mBAAmB,EAAE,IAAI,CAAC,UAAU;iBACrC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;gBACrD,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,yEAAyE;YACzE,8CAA8C;YAC9C,OAAO,WAAW,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,KAAK,EAAE,CAAC;QACV,CAAC;QAED,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,GAAoB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpD,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,iEAAiE;QACjE,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,wEAAwE;YACxE,6EAA6E;YAC7E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,QAAQ,YAAY,eAAe;gBAAE,MAAM,QAAQ,CAAC;YACxD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -12,20 +12,47 @@ export declare class T2VError extends Error {
|
|
|
12
12
|
readonly statusCode?: number | undefined;
|
|
13
13
|
readonly code?: string | undefined;
|
|
14
14
|
readonly detail?: string | undefined;
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The engine's id for the failed request, also sent as `X-Request-Id`.
|
|
17
|
+
* Quote it when you contact support. Absent for errors raised in the SDK.
|
|
18
|
+
*/
|
|
19
|
+
readonly requestId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Seconds to wait before trying again, from the response's `Retry-After`
|
|
22
|
+
* header. Set on rate limits and on some temporary outages.
|
|
23
|
+
*/
|
|
24
|
+
readonly retryAfter?: number;
|
|
25
|
+
constructor(message: string, type?: string, statusCode?: number | undefined, code?: string | undefined, detail?: string | undefined, details?: T2VErrorDetails);
|
|
26
|
+
}
|
|
27
|
+
/** What the engine said about a failed request beyond its error body. */
|
|
28
|
+
export interface T2VErrorDetails {
|
|
29
|
+
requestId?: string;
|
|
30
|
+
retryAfter?: number;
|
|
16
31
|
}
|
|
17
32
|
export declare class AuthenticationError extends T2VError {
|
|
18
|
-
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string);
|
|
33
|
+
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string, details?: T2VErrorDetails);
|
|
19
34
|
}
|
|
20
35
|
export declare class PartnerKeyError extends T2VError {
|
|
21
|
-
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string);
|
|
36
|
+
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string, details?: T2VErrorDetails);
|
|
22
37
|
}
|
|
23
38
|
export declare class SessionError extends T2VError {
|
|
24
|
-
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string);
|
|
39
|
+
constructor(message: string, type?: string, statusCode?: number, code?: string, detail?: string, details?: T2VErrorDetails);
|
|
25
40
|
}
|
|
26
41
|
export declare class NetworkError extends T2VError {
|
|
27
42
|
constructor(message: string);
|
|
28
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* What the end-user reads when their sign-in has died under them: the refresh
|
|
46
|
+
* token was revoked or has expired. One string, so the chat says the same thing
|
|
47
|
+
* whether the request that found out reports it or the identity change that
|
|
48
|
+
* emptied the conversation does (see the auth handler in `index.ts`).
|
|
49
|
+
*/
|
|
50
|
+
export declare const SESSION_EXPIRED_MESSAGE = "Session expired. Please log in again.";
|
|
29
51
|
/** Build the most specific error class for an engine error type. */
|
|
30
|
-
export declare function errorForType(message: string, type: string | undefined, statusCode?: number, code?: string, detail?: string): T2VError;
|
|
52
|
+
export declare function errorForType(message: string, type: string | undefined, statusCode?: number, code?: string, detail?: string, details?: T2VErrorDetails): T2VError;
|
|
53
|
+
/**
|
|
54
|
+
* Seconds from a `Retry-After` header, which is either a number of seconds or
|
|
55
|
+
* an HTTP date. Undefined when it is absent or unreadable.
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseRetryAfter(value: string | null, now?: number): number | undefined;
|
|
31
58
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAcf,IAAI,EAAE,MAAM;aACZ,UAAU,CAAC,EAAE,MAAM;aACnB,IAAI,CAAC,EAAE,MAAM;aACb,MAAM,CAAC,EAAE,MAAM;IAhBjC;;;OAGG;IACH,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnC;;;OAGG;IACH,SAAgB,UAAU,CAAC,EAAE,MAAM,CAAC;gBAGlC,OAAO,EAAE,MAAM,EACC,IAAI,GAAE,MAAoB,EAC1B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA,EAC/B,OAAO,GAAE,eAAoB;CAOhC;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAyB,EAAE,UAAU,SAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;CAIxI;AAED,qBAAa,eAAgB,SAAQ,QAAQ;gBAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,SAAsB,EAAE,UAAU,SAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;CAIrI;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,SAAkB,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe;CAIpI;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,0CAA0C,CAAC;AAyB/E,oEAAoE;AACpE,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,CAKV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,GAAG,SAAS,CAMlG"}
|
package/dist/errors.js
CHANGED
|
@@ -12,30 +12,42 @@ export class T2VError extends Error {
|
|
|
12
12
|
statusCode;
|
|
13
13
|
code;
|
|
14
14
|
detail;
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The engine's id for the failed request, also sent as `X-Request-Id`.
|
|
17
|
+
* Quote it when you contact support. Absent for errors raised in the SDK.
|
|
18
|
+
*/
|
|
19
|
+
requestId;
|
|
20
|
+
/**
|
|
21
|
+
* Seconds to wait before trying again, from the response's `Retry-After`
|
|
22
|
+
* header. Set on rate limits and on some temporary outages.
|
|
23
|
+
*/
|
|
24
|
+
retryAfter;
|
|
25
|
+
constructor(message, type = 'sdk_error', statusCode, code, detail, details = {}) {
|
|
16
26
|
super(message);
|
|
17
27
|
this.type = type;
|
|
18
28
|
this.statusCode = statusCode;
|
|
19
29
|
this.code = code;
|
|
20
30
|
this.detail = detail;
|
|
21
31
|
this.name = 'T2VError';
|
|
32
|
+
this.requestId = details.requestId;
|
|
33
|
+
this.retryAfter = details.retryAfter;
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
export class AuthenticationError extends T2VError {
|
|
25
|
-
constructor(message, type = 'authentication_error', statusCode = 401, code, detail) {
|
|
26
|
-
super(message, type, statusCode, code, detail);
|
|
37
|
+
constructor(message, type = 'authentication_error', statusCode = 401, code, detail, details) {
|
|
38
|
+
super(message, type, statusCode, code, detail, details);
|
|
27
39
|
this.name = 'AuthenticationError';
|
|
28
40
|
}
|
|
29
41
|
}
|
|
30
42
|
export class PartnerKeyError extends T2VError {
|
|
31
|
-
constructor(message, type = 'partner_key_error', statusCode = 401, code, detail) {
|
|
32
|
-
super(message, type, statusCode, code, detail);
|
|
43
|
+
constructor(message, type = 'partner_key_error', statusCode = 401, code, detail, details) {
|
|
44
|
+
super(message, type, statusCode, code, detail, details);
|
|
33
45
|
this.name = 'PartnerKeyError';
|
|
34
46
|
}
|
|
35
47
|
}
|
|
36
48
|
export class SessionError extends T2VError {
|
|
37
|
-
constructor(message, type = 'session_error', statusCode, code, detail) {
|
|
38
|
-
super(message, type, statusCode, code, detail);
|
|
49
|
+
constructor(message, type = 'session_error', statusCode, code, detail, details) {
|
|
50
|
+
super(message, type, statusCode, code, detail, details);
|
|
39
51
|
this.name = 'SessionError';
|
|
40
52
|
}
|
|
41
53
|
}
|
|
@@ -45,6 +57,13 @@ export class NetworkError extends T2VError {
|
|
|
45
57
|
this.name = 'NetworkError';
|
|
46
58
|
}
|
|
47
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* What the end-user reads when their sign-in has died under them: the refresh
|
|
62
|
+
* token was revoked or has expired. One string, so the chat says the same thing
|
|
63
|
+
* whether the request that found out reports it or the identity change that
|
|
64
|
+
* emptied the conversation does (see the auth handler in `index.ts`).
|
|
65
|
+
*/
|
|
66
|
+
export const SESSION_EXPIRED_MESSAGE = 'Session expired. Please log in again.';
|
|
48
67
|
/**
|
|
49
68
|
* The engine's error type for each class we publish. A failed request is thrown
|
|
50
69
|
* as the matching subclass so `err instanceof AuthenticationError` works, which
|
|
@@ -61,10 +80,23 @@ const ERROR_CLASS_BY_TYPE = {
|
|
|
61
80
|
session_not_found: SessionError,
|
|
62
81
|
};
|
|
63
82
|
/** Build the most specific error class for an engine error type. */
|
|
64
|
-
export function errorForType(message, type, statusCode, code, detail) {
|
|
83
|
+
export function errorForType(message, type, statusCode, code, detail, details) {
|
|
65
84
|
const Cls = type ? ERROR_CLASS_BY_TYPE[type] : undefined;
|
|
66
85
|
return Cls
|
|
67
|
-
? new Cls(message, type, statusCode, code, detail)
|
|
68
|
-
: new T2VError(message, type, statusCode, code, detail);
|
|
86
|
+
? new Cls(message, type, statusCode, code, detail, details)
|
|
87
|
+
: new T2VError(message, type, statusCode, code, detail, details);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Seconds from a `Retry-After` header, which is either a number of seconds or
|
|
91
|
+
* an HTTP date. Undefined when it is absent or unreadable.
|
|
92
|
+
*/
|
|
93
|
+
export function parseRetryAfter(value, now = Date.now()) {
|
|
94
|
+
if (!value)
|
|
95
|
+
return undefined;
|
|
96
|
+
const trimmed = value.trim();
|
|
97
|
+
if (/^\d+$/.test(trimmed))
|
|
98
|
+
return Number(trimmed);
|
|
99
|
+
const at = Date.parse(trimmed);
|
|
100
|
+
return Number.isNaN(at) ? undefined : Math.max(0, Math.ceil((at - now) / 1000));
|
|
69
101
|
}
|
|
70
102
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,24 +7,28 @@
|
|
|
7
7
|
*
|
|
8
8
|
* const t2v = new Talk2View({ partnerKey: 'pk_live_abc123' });
|
|
9
9
|
*
|
|
10
|
-
* //
|
|
11
|
-
* //
|
|
10
|
+
* // Nobody signed in? Where your partner key allows guests, chat() starts a
|
|
11
|
+
* // guest (anonymous) session by itself. Where it does not, nothing is sent
|
|
12
|
+
* // and the client says so — show your sign-in instead:
|
|
13
|
+
* t2v.on('anonymousUnavailable', () => showSignIn());
|
|
14
|
+
* // After the guest limit, listen for the prompt to sign up:
|
|
12
15
|
* t2v.on('demoLimitReached', () => showSignupPrompt());
|
|
13
|
-
* // Convert the
|
|
16
|
+
* // Convert the guest into a real account (history is preserved). The
|
|
14
17
|
* // anonymous session stays live until the emailed confirmation link is
|
|
15
18
|
* // clicked — check `confirmationRequired` to prompt the user to check email:
|
|
16
19
|
* const { confirmationRequired } = await t2v.auth.signup('user@example.com', 'password');
|
|
17
20
|
*
|
|
18
|
-
*
|
|
19
|
-
* return JSON.stringify(await myApp.createShape(args));
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
21
|
+
* // Register the tools, then attach their handlers.
|
|
22
22
|
* await t2v.tools.register([{
|
|
23
23
|
* name: 'create_shape',
|
|
24
24
|
* description: 'Create a 3D shape',
|
|
25
25
|
* parameters: { type: 'object', properties: { ... }, required: [...] },
|
|
26
26
|
* }]);
|
|
27
27
|
*
|
|
28
|
+
* t2v.tools.handle('create_shape', async (args) => {
|
|
29
|
+
* return JSON.stringify(await myApp.createShape(args));
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
28
32
|
* for await (const event of t2v.chat('Make a red cylinder')) {
|
|
29
33
|
* if (event.type === 'text') console.log(event.content);
|
|
30
34
|
* }
|
|
@@ -47,6 +51,12 @@ export declare class Talk2View {
|
|
|
47
51
|
private currentSession;
|
|
48
52
|
/** The signed-in user id the current session belongs to, to detect identity changes. */
|
|
49
53
|
private _authUserId;
|
|
54
|
+
/**
|
|
55
|
+
* Whether that id was a guest's when it arrived. Recorded then, because by
|
|
56
|
+
* the time the next identity reaches us `auth.isAnonymous()` describes the
|
|
57
|
+
* new one, not the one leaving.
|
|
58
|
+
*/
|
|
59
|
+
private _authAnonymous;
|
|
50
60
|
private sessionClearListeners;
|
|
51
61
|
private sessionCreateListeners;
|
|
52
62
|
private _configCache;
|
|
@@ -293,10 +303,22 @@ export declare class Talk2View {
|
|
|
293
303
|
* chat() opens a fresh session owned by the new user. Unlike {@link clearSession}
|
|
294
304
|
* this does NOT delete the old session on the server: it belongs to the previous
|
|
295
305
|
* identity (we no longer hold its token), and the retention sweep reclaims it.
|
|
296
|
-
* Messages/history are
|
|
297
|
-
* resumed in the new session.
|
|
306
|
+
* Messages/history are left alone here, so a guest's interrupted task can be
|
|
307
|
+
* resumed in the new session; {@link forgetConversation} is the other half.
|
|
298
308
|
*/
|
|
299
309
|
private resetSessionForIdentityChange;
|
|
310
|
+
/**
|
|
311
|
+
* Take the conversation on screen away when the end-user it belongs to has
|
|
312
|
+
* gone: signed out, or an account replaced by someone else. Kept, it was the
|
|
313
|
+
* next person's to read, and to carry on — the transcript is replayed with
|
|
314
|
+
* every message, so it would have gone to the engine under their account.
|
|
315
|
+
*
|
|
316
|
+
* Everything that belongs to the conversation goes, as in
|
|
317
|
+
* {@link restoreConversation}, including a reply still arriving, which must
|
|
318
|
+
* not finish writing into the empty chat. The engine session is the identity
|
|
319
|
+
* change's to drop (above), and is not deleted: it is not ours any more.
|
|
320
|
+
*/
|
|
321
|
+
private forgetConversation;
|
|
300
322
|
/**
|
|
301
323
|
* Subscribe to session clear events.
|
|
302
324
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,24 +7,28 @@
|
|
|
7
7
|
*
|
|
8
8
|
* const t2v = new Talk2View({ partnerKey: 'pk_live_abc123' });
|
|
9
9
|
*
|
|
10
|
-
* //
|
|
11
|
-
* //
|
|
10
|
+
* // Nobody signed in? Where your partner key allows guests, chat() starts a
|
|
11
|
+
* // guest (anonymous) session by itself. Where it does not, nothing is sent
|
|
12
|
+
* // and the client says so — show your sign-in instead:
|
|
13
|
+
* t2v.on('anonymousUnavailable', () => showSignIn());
|
|
14
|
+
* // After the guest limit, listen for the prompt to sign up:
|
|
12
15
|
* t2v.on('demoLimitReached', () => showSignupPrompt());
|
|
13
|
-
* // Convert the
|
|
16
|
+
* // Convert the guest into a real account (history is preserved). The
|
|
14
17
|
* // anonymous session stays live until the emailed confirmation link is
|
|
15
18
|
* // clicked — check `confirmationRequired` to prompt the user to check email:
|
|
16
19
|
* const { confirmationRequired } = await t2v.auth.signup('user@example.com', 'password');
|
|
17
20
|
*
|
|
18
|
-
*
|
|
19
|
-
* return JSON.stringify(await myApp.createShape(args));
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
21
|
+
* // Register the tools, then attach their handlers.
|
|
22
22
|
* await t2v.tools.register([{
|
|
23
23
|
* name: 'create_shape',
|
|
24
24
|
* description: 'Create a 3D shape',
|
|
25
25
|
* parameters: { type: 'object', properties: { ... }, required: [...] },
|
|
26
26
|
* }]);
|
|
27
27
|
*
|
|
28
|
+
* t2v.tools.handle('create_shape', async (args) => {
|
|
29
|
+
* return JSON.stringify(await myApp.createShape(args));
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
28
32
|
* for await (const event of t2v.chat('Make a red cylinder')) {
|
|
29
33
|
* if (event.type === 'text') console.log(event.content);
|
|
30
34
|
* }
|
|
@@ -33,7 +37,7 @@
|
|
|
33
37
|
import { T2VAuth } from './auth.js';
|
|
34
38
|
import { T2VClient } from './client.js';
|
|
35
39
|
import { ATTACHMENT_TYPES_LABEL, isAllowedAttachmentType } from './constants.js';
|
|
36
|
-
import { T2VError } from './errors.js';
|
|
40
|
+
import { SESSION_EXPIRED_MESSAGE, T2VError } from './errors.js';
|
|
37
41
|
import { TypedEventEmitter } from './event-emitter.js';
|
|
38
42
|
import { getIsAnonymous, hasValidTokens } from './storage.js';
|
|
39
43
|
import { T2VSession, buildUserContent } from './sessions.js';
|
|
@@ -102,6 +106,12 @@ export class Talk2View {
|
|
|
102
106
|
currentSession = null;
|
|
103
107
|
/** The signed-in user id the current session belongs to, to detect identity changes. */
|
|
104
108
|
_authUserId = null;
|
|
109
|
+
/**
|
|
110
|
+
* Whether that id was a guest's when it arrived. Recorded then, because by
|
|
111
|
+
* the time the next identity reaches us `auth.isAnonymous()` describes the
|
|
112
|
+
* new one, not the one leaving.
|
|
113
|
+
*/
|
|
114
|
+
_authAnonymous = false;
|
|
105
115
|
sessionClearListeners = new Set();
|
|
106
116
|
sessionCreateListeners = new Set();
|
|
107
117
|
// ── getConfig single-flight + cache ─────────────────────────────────────
|
|
@@ -157,6 +167,7 @@ export class Talk2View {
|
|
|
157
167
|
// time, so an initial auth event that merely re-announces the same user does
|
|
158
168
|
// not spuriously reset a healthy session (dropping its thread mid-task).
|
|
159
169
|
this._authUserId = this.auth.getUser?.()?.id ?? null;
|
|
170
|
+
this._authAnonymous = this._authUserId !== null && this.auth.isAnonymous?.() === true;
|
|
160
171
|
// Auth state changes (login, logout, anonymous start, user switch) drop the
|
|
161
172
|
// auth-scoped config cache so a stale partner config never leaks across users.
|
|
162
173
|
// They also reset the chat session when the *identity* changes: the server
|
|
@@ -170,10 +181,30 @@ export class Talk2View {
|
|
|
170
181
|
if (userId !== this._authUserId) {
|
|
171
182
|
this._warmUp = null; // a different end-user has a different key
|
|
172
183
|
const previousId = this._authUserId;
|
|
184
|
+
// Whose conversation is on screen, decided before anything below moves.
|
|
185
|
+
// It follows the end-user out of a guest session or out of no session
|
|
186
|
+
// into the account they sign in to — the visitor who typed first, the
|
|
187
|
+
// guest who hit the limit — and nowhere else. An account's conversation
|
|
188
|
+
// never goes on to whoever is next, and signing out ends it.
|
|
189
|
+
const forget = previousId !== null && (this.auth.signingOut === true || !this._authAnonymous);
|
|
190
|
+
// An account's session that died on its own — a refresh token revoked
|
|
191
|
+
// or expired, a sign-out in another tab — empties the chat without the
|
|
192
|
+
// end-user doing anything. The request that found out cannot say so:
|
|
193
|
+
// its conversation has gone, so its error goes with it. Say it here,
|
|
194
|
+
// when there was something on screen to lose.
|
|
195
|
+
const expired = forget &&
|
|
196
|
+
userId === null &&
|
|
197
|
+
this.auth.signingOut !== true &&
|
|
198
|
+
(this._messages.length > 0 || this._isLoading);
|
|
173
199
|
this._authUserId = userId;
|
|
174
200
|
this.endVoiceCallForIdentityChange(previousId, userId);
|
|
175
201
|
this.resetSessionForIdentityChange();
|
|
202
|
+
if (forget)
|
|
203
|
+
this.forgetConversation();
|
|
204
|
+
if (expired)
|
|
205
|
+
this.setError(SESSION_EXPIRED_MESSAGE);
|
|
176
206
|
}
|
|
207
|
+
this._authAnonymous = userId !== null && this.auth.isAnonymous?.() === true;
|
|
177
208
|
});
|
|
178
209
|
}
|
|
179
210
|
/**
|
|
@@ -666,8 +697,8 @@ export class Talk2View {
|
|
|
666
697
|
* chat() opens a fresh session owned by the new user. Unlike {@link clearSession}
|
|
667
698
|
* this does NOT delete the old session on the server: it belongs to the previous
|
|
668
699
|
* identity (we no longer hold its token), and the retention sweep reclaims it.
|
|
669
|
-
* Messages/history are
|
|
670
|
-
* resumed in the new session.
|
|
700
|
+
* Messages/history are left alone here, so a guest's interrupted task can be
|
|
701
|
+
* resumed in the new session; {@link forgetConversation} is the other half.
|
|
671
702
|
*/
|
|
672
703
|
resetSessionForIdentityChange() {
|
|
673
704
|
const hadSession = this.currentSession !== null;
|
|
@@ -679,6 +710,29 @@ export class Talk2View {
|
|
|
679
710
|
}
|
|
680
711
|
}
|
|
681
712
|
}
|
|
713
|
+
/**
|
|
714
|
+
* Take the conversation on screen away when the end-user it belongs to has
|
|
715
|
+
* gone: signed out, or an account replaced by someone else. Kept, it was the
|
|
716
|
+
* next person's to read, and to carry on — the transcript is replayed with
|
|
717
|
+
* every message, so it would have gone to the engine under their account.
|
|
718
|
+
*
|
|
719
|
+
* Everything that belongs to the conversation goes, as in
|
|
720
|
+
* {@link restoreConversation}, including a reply still arriving, which must
|
|
721
|
+
* not finish writing into the empty chat. The engine session is the identity
|
|
722
|
+
* change's to drop (above), and is not deleted: it is not ours any more.
|
|
723
|
+
*/
|
|
724
|
+
forgetConversation() {
|
|
725
|
+
this.endCurrentTurn();
|
|
726
|
+
this.setMessages([]);
|
|
727
|
+
this._conversationHistory = [];
|
|
728
|
+
this.setLoading(false);
|
|
729
|
+
this.setError(null);
|
|
730
|
+
this.setPendingApproval(null);
|
|
731
|
+
this.setAgentStatus(null);
|
|
732
|
+
this._lastUserMessage = null;
|
|
733
|
+
this._lastUserAttachments = null;
|
|
734
|
+
this.setAlwaysAllowed(new Set());
|
|
735
|
+
}
|
|
682
736
|
/**
|
|
683
737
|
* Subscribe to session clear events.
|
|
684
738
|
*
|