@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.
Files changed (53) hide show
  1. package/README.md +137 -50
  2. package/dist/assistant-ui/index.d.ts.map +1 -1
  3. package/dist/assistant-ui/index.js +12 -7
  4. package/dist/assistant-ui/index.js.map +1 -1
  5. package/dist/auth.d.ts +23 -4
  6. package/dist/auth.d.ts.map +1 -1
  7. package/dist/auth.js +48 -22
  8. package/dist/auth.js.map +1 -1
  9. package/dist/chat/lib/use-conversations.d.ts.map +1 -1
  10. package/dist/chat/lib/use-conversations.js +23 -6
  11. package/dist/chat/lib/use-conversations.js.map +1 -1
  12. package/dist/chat/provider.d.ts +20 -2
  13. package/dist/chat/provider.d.ts.map +1 -1
  14. package/dist/chat/provider.js +3 -1
  15. package/dist/chat/provider.js.map +1 -1
  16. package/dist/chat/views/account.d.ts.map +1 -1
  17. package/dist/chat/views/account.js +22 -9
  18. package/dist/chat/views/account.js.map +1 -1
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +15 -5
  21. package/dist/client.js.map +1 -1
  22. package/dist/errors.d.ts +32 -5
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js +42 -10
  25. package/dist/errors.js.map +1 -1
  26. package/dist/index.d.ts +31 -9
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +64 -10
  29. package/dist/index.js.map +1 -1
  30. package/dist/sessions.d.ts.map +1 -1
  31. package/dist/sessions.js +1 -0
  32. package/dist/sessions.js.map +1 -1
  33. package/dist/storage.d.ts +6 -0
  34. package/dist/storage.d.ts.map +1 -1
  35. package/dist/storage.js +6 -0
  36. package/dist/storage.js.map +1 -1
  37. package/dist/tools.d.ts +2 -1
  38. package/dist/tools.d.ts.map +1 -1
  39. package/dist/tools.js +23 -10
  40. package/dist/tools.js.map +1 -1
  41. package/dist/types.d.ts +10 -1
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/ui/components/ChatPanel.d.ts +5 -1
  44. package/dist/ui/components/ChatPanel.d.ts.map +1 -1
  45. package/dist/ui/components/ChatPanel.js +5 -1
  46. package/dist/ui/components/ChatPanel.js.map +1 -1
  47. package/dist/version.d.ts +9 -0
  48. package/dist/version.d.ts.map +1 -0
  49. package/dist/version.js +9 -0
  50. package/dist/version.js.map +1 -0
  51. package/docs/chat.md +86 -15
  52. package/docs/voice.md +18 -8
  53. 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
- 'get one at https://dashboard.talk2view.com.', 'partner_key_error', 0);
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
- return errorForType(safeMessage, type, response.status, code, detail);
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('Session expired. Please log in again.');
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,
@@ -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
- constructor(message: string, type?: string, statusCode?: number | undefined, code?: string | undefined, detail?: string | undefined);
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
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,qBAAa,QAAS,SAAQ,KAAK;aAGf,IAAI,EAAE,MAAM;aACZ,UAAU,CAAC,EAAE,MAAM;aACnB,IAAI,CAAC,EAAE,MAAM;aACb,MAAM,CAAC,EAAE,MAAM;gBAJ/B,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;CAKlC;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;CAI7G;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;CAI1G;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;CAIzG;AAED,qBAAa,YAAa,SAAQ,QAAQ;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAwBD,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,GACd,QAAQ,CAKV"}
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
- constructor(message, type = 'sdk_error', statusCode, code, detail) {
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
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGf;IACA;IACA;IACA;IALlB,YACE,OAAe,EACC,OAAe,WAAW,EAC1B,UAAmB,EACnB,IAAa,EACb,MAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAsB;QAC1B,eAAU,GAAV,UAAU,CAAS;QACnB,SAAI,GAAJ,IAAI,CAAS;QACb,WAAM,GAAN,MAAM,CAAS;QAG/B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,OAAe,EAAE,IAAI,GAAG,sBAAsB,EAAE,UAAU,GAAG,GAAG,EAAE,IAAa,EAAE,MAAe;QAC1G,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,QAAQ;IAC3C,YAAY,OAAe,EAAE,IAAI,GAAG,mBAAmB,EAAE,UAAU,GAAG,GAAG,EAAE,IAAa,EAAE,MAAe;QACvG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAe,EAAE,IAAI,GAAG,eAAe,EAAE,UAAmB,EAAE,IAAa,EAAE,MAAe;QACtG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,mBAAmB,GAMR;IACf,oBAAoB,EAAE,mBAAmB;IACzC,iBAAiB,EAAE,eAAe;IAClC,2EAA2E;IAC3E,kEAAkE;IAClE,uEAAuE;IACvE,wEAAwE;IACxE,2DAA2D;IAC3D,iBAAiB,EAAE,YAAY;CAChC,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,YAAY,CAC1B,OAAe,EACf,IAAwB,EACxB,UAAmB,EACnB,IAAa,EACb,MAAe;IAEf,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,OAAO,GAAG;QACR,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC;QAClD,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC"}
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
- * // No login needed — chat() auto-starts an anonymous demo session.
11
- * // After the demo limit, listen for the prompt to sign up:
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 demo into a real account (history is preserved). 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
- * t2v.tools.handle('create_shape', async (args) => {
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 kept so the UI isn't wiped and an interrupted task can be
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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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
- * // No login needed — chat() auto-starts an anonymous demo session.
11
- * // After the demo limit, listen for the prompt to sign up:
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 demo into a real account (history is preserved). 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
- * t2v.tools.handle('create_shape', async (args) => {
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 kept so the UI isn't wiped and an interrupted task can be
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
  *