@talk2view/sdk 0.16.2 → 0.17.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 (65) hide show
  1. package/dist/assistant-ui/index.d.ts +13 -2
  2. package/dist/assistant-ui/index.d.ts.map +1 -1
  3. package/dist/assistant-ui/index.js +15 -12
  4. package/dist/assistant-ui/index.js.map +1 -1
  5. package/dist/chat/chat.d.ts.map +1 -1
  6. package/dist/chat/chat.js +8 -3
  7. package/dist/chat/chat.js.map +1 -1
  8. package/dist/chat/lib/conversation-store.d.ts +105 -0
  9. package/dist/chat/lib/conversation-store.d.ts.map +1 -0
  10. package/dist/chat/lib/conversation-store.js +278 -0
  11. package/dist/chat/lib/conversation-store.js.map +1 -0
  12. package/dist/chat/lib/use-conversations.d.ts +13 -0
  13. package/dist/chat/lib/use-conversations.d.ts.map +1 -0
  14. package/dist/chat/lib/use-conversations.js +365 -0
  15. package/dist/chat/lib/use-conversations.js.map +1 -0
  16. package/dist/chat/provider.d.ts.map +1 -1
  17. package/dist/chat/provider.js +6 -0
  18. package/dist/chat/provider.js.map +1 -1
  19. package/dist/chat/ui/avatar.d.ts +7 -8
  20. package/dist/chat/ui/avatar.d.ts.map +1 -1
  21. package/dist/chat/ui/avatar.js +30 -18
  22. package/dist/chat/ui/avatar.js.map +1 -1
  23. package/dist/chat/ui/button.d.ts +5 -2
  24. package/dist/chat/ui/button.d.ts.map +1 -1
  25. package/dist/chat/ui/button.js +10 -3
  26. package/dist/chat/ui/button.js.map +1 -1
  27. package/dist/chat/ui/collapsible.d.ts +4 -4
  28. package/dist/chat/ui/collapsible.d.ts.map +1 -1
  29. package/dist/chat/ui/collapsible.js +18 -9
  30. package/dist/chat/ui/collapsible.js.map +1 -1
  31. package/dist/chat/ui/dialog.d.ts +11 -11
  32. package/dist/chat/ui/dialog.d.ts.map +1 -1
  33. package/dist/chat/ui/dialog.js +49 -28
  34. package/dist/chat/ui/dialog.js.map +1 -1
  35. package/dist/chat/ui/input.d.ts +1 -1
  36. package/dist/chat/ui/input.d.ts.map +1 -1
  37. package/dist/chat/ui/input.js +10 -3
  38. package/dist/chat/ui/input.js.map +1 -1
  39. package/dist/chat/ui/skeleton.d.ts +2 -1
  40. package/dist/chat/ui/skeleton.d.ts.map +1 -1
  41. package/dist/chat/ui/skeleton.js +10 -3
  42. package/dist/chat/ui/skeleton.js.map +1 -1
  43. package/dist/chat/ui/textarea.d.ts +1 -1
  44. package/dist/chat/ui/textarea.d.ts.map +1 -1
  45. package/dist/chat/ui/textarea.js +10 -3
  46. package/dist/chat/ui/textarea.js.map +1 -1
  47. package/dist/chat/ui/tooltip.d.ts +3 -2
  48. package/dist/chat/ui/tooltip.d.ts.map +1 -1
  49. package/dist/chat/ui/tooltip.js +25 -8
  50. package/dist/chat/ui/tooltip.js.map +1 -1
  51. package/dist/chat/vendor/thread-list.aui.d.ts +3 -3
  52. package/dist/chat/vendor/thread-list.aui.d.ts.map +1 -1
  53. package/dist/chat/vendor/thread-list.aui.js +7 -7
  54. package/dist/chat/vendor/thread-list.aui.js.map +1 -1
  55. package/dist/chat-css.js +1 -1
  56. package/dist/chat.css +1 -1
  57. package/dist/chat.isolated.css +3 -0
  58. package/dist/chat.raw.css +3 -0
  59. package/dist/index.d.ts +56 -2
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +104 -6
  62. package/dist/index.js.map +1 -1
  63. package/dist/types.d.ts +20 -0
  64. package/dist/types.d.ts.map +1 -1
  65. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import type { AssistantRuntime } from '@assistant-ui/react';
1
+ import type { AssistantRuntime, ExternalStoreThreadListAdapter } from '@assistant-ui/react';
2
2
  import { Talk2View } from '../index.js';
3
3
  import type { ClientTool, ClientToolSchema, T2VConfig } from '../types.js';
4
4
  import { type Talk2ViewDictationOptions } from './dictation.js';
@@ -33,11 +33,22 @@ export interface Talk2ViewRuntimeOptions {
33
33
  * hiding the button alone would still leave a drop target.
34
34
  */
35
35
  attachments?: boolean;
36
+ /**
37
+ * Earlier conversations: what the Threads view lists and what "New Thread"
38
+ * starts. Supply one and this runtime passes it to assistant-ui unchanged —
39
+ * where the conversations are kept, and how, is the caller's business, not
40
+ * the runtime's. `@talk2view/sdk/chat` supplies one that keeps them in the
41
+ * browser.
42
+ *
43
+ * Without it, "New Thread" clears the conversation instead of starting one
44
+ * beside it, which is all a runtime with nowhere to keep the old one can do.
45
+ */
46
+ threadList?: ExternalStoreThreadListAdapter;
36
47
  }
37
48
  export interface UseTalk2ViewRuntimeOptions extends T2VConfig, Talk2ViewRuntimeOptions {
38
49
  }
39
50
  /** Create a Talk2View client and expose it as an assistant-ui runtime. */
40
51
  export declare function useTalk2ViewRuntime(options: UseTalk2ViewRuntimeOptions): AssistantRuntime;
41
52
  /** Expose an existing client (for example the one from `useT2V()`) as an assistant-ui runtime. */
42
- export declare function useTalk2ViewRuntimeForClient(t2v: Talk2View, { systemPrompt, tools, model, dictation, attachments: attachmentsEnabled }?: Talk2ViewRuntimeOptions): AssistantRuntime;
53
+ export declare function useTalk2ViewRuntimeForClient(t2v: Talk2View, { systemPrompt, tools, model, dictation, attachments: attachmentsEnabled, threadList, }?: Talk2ViewRuntimeOptions): AssistantRuntime;
43
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assistant-ui/index.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAEV,gBAAgB,EAKjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAEV,UAAU,EACV,gBAAgB,EAGhB,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjG,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,0BAA2B,SAAQ,SAAS,EAAE,uBAAuB;CAAG;AAKzF,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CA6BzF;AAED,kGAAkG;AAClG,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,SAAS,EACd,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAyB,EAAE,GAAE,uBAA4B,GAC9G,gBAAgB,CAgNlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assistant-ui/index.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAEV,gBAAgB,EAIhB,8BAA8B,EAE/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAEV,UAAU,EACV,gBAAgB,EAGhB,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAmC,KAAK,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjG,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1F,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IAChD;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,8BAA8B,CAAC;CAC7C;AAED,MAAM,WAAW,0BAA2B,SAAQ,SAAS,EAAE,uBAAuB;CAAG;AAKzF,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CA6BzF;AAED,kGAAkG;AAClG,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,SAAS,EACd,EACE,YAAY,EACZ,KAAK,EACL,KAAK,EACL,SAAS,EACT,WAAW,EAAE,kBAAyB,EACtC,UAAU,GACX,GAAE,uBAA4B,GAC9B,gBAAgB,CAmNlB"}
@@ -39,7 +39,7 @@ export { createTalk2ViewDictationAdapter, DEFAULT_DICTATION_MODEL } from './dict
39
39
  const CANCELLED_APPROVAL_FEEDBACK = 'Cancelled by the user';
40
40
  /** Create a Talk2View client and expose it as an assistant-ui runtime. */
41
41
  export function useTalk2ViewRuntime(options) {
42
- const { systemPrompt, tools, model: messageModel, dictation, ...config } = options;
42
+ const { systemPrompt, tools, model: messageModel, dictation, threadList, ...config } = options;
43
43
  // A new client only when the connection details change. `model` is not one
44
44
  // of them here: it travels with each message, so an end-user can switch
45
45
  // models from a settings screen without losing the chat.
@@ -54,7 +54,7 @@ export function useTalk2ViewRuntime(options) {
54
54
  },
55
55
  // eslint-disable-next-line react-hooks/exhaustive-deps
56
56
  [config.partnerKey, config.baseUrl, config.debug, config.anonymousAutoStart]);
57
- const runtime = useTalk2ViewRuntimeForClient(t2v, { systemPrompt, tools, model: messageModel, dictation });
57
+ const runtime = useTalk2ViewRuntimeForClient(t2v, { systemPrompt, tools, model: messageModel, dictation, threadList });
58
58
  // Declared after the subscriptions above so, on a client swap or unmount,
59
59
  // React runs their cleanup first and destroys the client last. Setup and
60
60
  // cleanup are exact inverses because StrictMode runs this as setup → cleanup →
@@ -67,7 +67,7 @@ export function useTalk2ViewRuntime(options) {
67
67
  return runtime;
68
68
  }
69
69
  /** Expose an existing client (for example the one from `useT2V()`) as an assistant-ui runtime. */
70
- export function useTalk2ViewRuntimeForClient(t2v, { systemPrompt, tools, model, dictation, attachments: attachmentsEnabled = true } = {}) {
70
+ export function useTalk2ViewRuntimeForClient(t2v, { systemPrompt, tools, model, dictation, attachments: attachmentsEnabled = true, threadList, } = {}) {
71
71
  const [messages, setMessages] = useState(t2v.messages);
72
72
  const [isLoading, setIsLoading] = useState(t2v.isLoading);
73
73
  const [error, setError] = useState(t2v.error);
@@ -211,20 +211,23 @@ export function useTalk2ViewRuntimeForClient(t2v, { systemPrompt, tools, model,
211
211
  adapters: {
212
212
  ...(attachmentsEnabled ? { attachments } : {}),
213
213
  ...(dictationAdapter ? { dictation: dictationAdapter } : {}),
214
- // The header's "New Thread" control. The runtime reads this from
215
- // `adapters.threadList`, not from the root, and without it it throws
216
- // "External store adapter does not support switching to new thread",
217
- // catches it, logs it, and the button does nothing at all — which is
218
- // how it shipped. `clearMessages()` is what the first-party panel's
219
- // New chat always did: it drops the messages, the history and the
220
- // thread id, and ends the engine-side session.
221
- threadList: {
214
+ // The thread list, and the header's "New Thread" control with it. The
215
+ // runtime reads this from `adapters.threadList`, not from the adapter
216
+ // root — at the root it type-checks, runs, and does nothing at all.
217
+ //
218
+ // Without an adapter here it throws "External store adapter does not
219
+ // support switching to new thread", catches it, logs it, and the button
220
+ // does nothing, which is how it shipped. The fallback keeps a runtime
221
+ // with nowhere to store conversations working: `clearMessages()` is what
222
+ // the first-party panel's New chat always did — it drops the messages,
223
+ // the history and the thread id, and ends the engine-side session.
224
+ threadList: threadList ?? {
222
225
  onSwitchToNewThread: () => {
223
226
  t2v.clearMessages();
224
227
  },
225
228
  },
226
229
  },
227
- }), [threadMessages, isLoading, pendingApproval, convertMessage, onNew, onCancel, onReload, t2v, attachments, attachmentsEnabled, dictationAdapter]);
230
+ }), [threadMessages, isLoading, pendingApproval, convertMessage, onNew, onCancel, onReload, t2v, attachments, attachmentsEnabled, dictationAdapter, threadList]);
228
231
  const runtime = useExternalStoreRuntime(adapter);
229
232
  // First character typed = intent. Mint the end-user's key while they finish
230
233
  // the sentence. Not on mount and not on focus: the composer autofocuses when a
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assistant-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAS9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAkC,MAAM,gBAAgB,CAAC;AAGjG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAiC1F,oEAAoE;AACpE,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACnF,2EAA2E;IAC3E,wEAAwE;IACxE,yDAAyD;IACzD,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,gBAAgB;IAChB,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,uDAAuD;IACvD,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAC7E,CAAC;IACF,MAAM,OAAO,GAAG,4BAA4B,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3G,0EAA0E;IAC1E,yEAAyE;IACzE,+EAA+E;IAC/E,6EAA6E;IAC7E,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACV,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,4BAA4B,CAC1C,GAAc,EACd,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,KAA8B,EAAE;IAE/G,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmB,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAyB,GAAG,CAAC,eAAe,CAAC,CAAC;IAEpG,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;YACrC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;YACrC,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC/B,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;SAC7C,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,2EAA2E;IAC3E,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,IAAkB,CAAC;QAC5D,OAAO,MAA0B,CAAC;IACpC,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,CAAyC,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO;QACpF,UAAU,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAErC,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAAsB,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,iBAAiB;QACzB,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;YAChB,OAAO;gBACL,EAAE,EAAE,SAAS,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;gBAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI;gBACJ,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE;aAC7D,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,WAAW,EAAE,MAAM,CAAC,SAAS;gBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC5B,2DAA2D;gBAC3D,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM;YACV,yEAAyE;QAC3E,CAAC;KACF,CAAC,EACF,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,MAAM,CAA4B,EAAE,CAAC,CAAC;IAC/D,gBAAgB,CAAC,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACtG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CACxB,CAAC;IAEF,4EAA4E;IAC5E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,cAAc,GAAG,OAAO,CAAmB,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtB,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,GAAmB,EAAE,GAAW,EAAE,EAAE,CACnC,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAC7F,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAChD,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,OAAsB,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;aACzB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAc,EAAE;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,qEAAqE;YACrE,4DAA4D;YAC5D,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACjH,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,EACD,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,cAAc;IACd,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,QAAuB,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,EAAE;YAAE,OAAO;QAClD,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/B,CAAC,EACD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAC;IAEF,0EAA0E;IAC1E,sEAAsE;IACtE,sCAAsC;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,cAAc;QACxB,uEAAuE;QACvE,+DAA+D;QAC/D,SAAS,EAAE,SAAS,IAAI,eAAe,KAAK,IAAI;QAChD,cAAc;QACd,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC1C,kEAAkE;YAClE,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,eAAe,EAAE,UAAU;gBAAE,OAAO;YACpE,MAAM,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,QAAQ,EAAE;YACR,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,iEAAiE;YACjE,qEAAqE;YACrE,qEAAqE;YACrE,qEAAqE;YACrE,oEAAoE;YACpE,kEAAkE;YAClE,+CAA+C;YAC/C,UAAU,EAAE;gBACV,mBAAmB,EAAE,GAAG,EAAE;oBACxB,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtB,CAAC;aACF;SACF;KACF,CAAC,EACF,CAAC,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAChJ,CAAC;IAEF,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,uEAAuE;IACvE,6EAA6E;IAC7E,MAAM,SAAS,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,SAAS,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;gBAAE,OAAO;YACnE,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC;YACxB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,KAAK,EAAE,CAAC;QACR,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,SAAS,SAAS;IAChB,cAAc,IAAI,CAAC,CAAC;IACpB,OAAO,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,cAAc,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assistant-ui/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAU9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AASpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAkC,MAAM,gBAAgB,CAAC;AAGjG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAErF,OAAO,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AA4C1F,oEAAoE;AACpE,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAE5D,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAC/F,2EAA2E;IAC3E,wEAAwE;IACxE,yDAAyD;IACzD,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,gBAAgB;IAChB,MAAM,GAAG,GAAG,OAAO,CACjB,GAAG,EAAE;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,uDAAuD;IACvD,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAC7E,CAAC;IACF,MAAM,OAAO,GAAG,4BAA4B,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IACvH,0EAA0E;IAC1E,yEAAyE;IACzE,+EAA+E;IAC/E,6EAA6E;IAC7E,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACV,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,4BAA4B,CAC1C,GAAc,EACd,EACE,YAAY,EACZ,KAAK,EACL,KAAK,EACL,SAAS,EACT,WAAW,EAAE,kBAAkB,GAAG,IAAI,EACtC,UAAU,MACiB,EAAE;IAE/B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAmB,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAyB,GAAG,CAAC,eAAe,CAAC,CAAC;IAEpG,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1B,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,CAAC;YACrC,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;YACrC,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC/B,GAAG,CAAC,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;SAC7C,CAAC;QACF,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,2EAA2E;IAC3E,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,IAAkB,CAAC;QAC5D,OAAO,MAA0B,CAAC;IACpC,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,CAAyC,IAAI,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;YAC/B,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO;gBAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO;QACpF,UAAU,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAErC,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,GAAG,EAAsB,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,CAAC;QACL,MAAM,EAAE,iBAAiB;QACzB,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;YAChB,OAAO;gBACL,EAAE,EAAE,SAAS,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;gBAC3D,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI;gBACJ,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,eAAe,EAAE;aAC7D,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO;YAChB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3E,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO;gBACL,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,WAAW,EAAE,MAAM,CAAC,SAAS;gBAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAC5B,2DAA2D;gBAC3D,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,MAAM;YACV,yEAAyE;QAC3E,CAAC;KACF,CAAC,EACF,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,MAAM,CAA4B,EAAE,CAAC,CAAC;IAC/D,gBAAgB,CAAC,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,+BAA+B,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACtG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CACxB,CAAC;IAEF,4EAA4E;IAC5E,0EAA0E;IAC1E,gEAAgE;IAChE,MAAM,cAAc,GAAG,OAAO,CAAmB,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtB,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,GAAmB,EAAE,GAAW,EAAE,EAAE,CACnC,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAC7F,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,CAChD,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,OAAsB,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;aACzB,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAc,EAAE;YAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1C,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,qEAAqE;YACrE,4DAA4D;YAC5D,OAAO,MAAM,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACjH,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE;YAC1B,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC,EACD,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,cAAc;IACd,MAAM,QAAQ,GAAG,WAAW,CAC1B,KAAK,EAAE,QAAuB,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,EAAE;YAAE,OAAO;QAClD,MAAM,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC/B,CAAC,EACD,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAC;IAEF,0EAA0E;IAC1E,sEAAsE;IACtE,sCAAsC;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,EAAE,CAAC;IACb,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,CAAC;QACL,QAAQ,EAAE,cAAc;QACxB,uEAAuE;QACvE,+DAA+D;QAC/D,SAAS,EAAE,SAAS,IAAI,eAAe,KAAK,IAAI;QAChD,cAAc;QACd,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC1C,kEAAkE;YAClE,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,CAAC,eAAe,EAAE,UAAU;gBAAE,OAAO;YACpE,MAAM,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,QAAQ,EAAE;YACR,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,EAAE;YACF,qEAAqE;YACrE,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,uEAAuE;YACvE,mEAAmE;YACnE,UAAU,EAAE,UAAU,IAAI;gBACxB,mBAAmB,EAAE,GAAG,EAAE;oBACxB,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtB,CAAC;aACF;SACF;KACF,CAAC,EACF,CAAC,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAC5J,CAAC;IAEF,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjD,4EAA4E;IAC5E,+EAA+E;IAC/E,yEAAyE;IACzE,uEAAuE;IACvE,6EAA6E;IAC7E,MAAM,SAAS,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,SAAS,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;gBAAE,OAAO;YACnE,SAAS,CAAC,OAAO,GAAG,GAAG,CAAC;YACxB,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC,CAAC;QACF,KAAK,EAAE,CAAC;QACR,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,SAAS,SAAS;IAChB,cAAc,IAAI,CAAC,CAAC;IACpB,OAAO,WAAW,IAAI,CAAC,GAAG,EAAE,IAAI,cAAc,EAAE,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAML,KAAK,EAAE,EACP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAStF,wCAAwC;AACxC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AASlE,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAalE;AAED,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAsFxC,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAML,KAAK,EAAE,EACP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,OAAO,EAAgC,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAStF,wCAAwC;AACxC,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAclE,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAalE;AAED,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gFAAgF;IAChF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAsFxC,CAAC"}
package/dist/chat/chat.js CHANGED
@@ -30,9 +30,14 @@ import { useAuthGate } from './auth-gate.js';
30
30
  import { AccountView } from './views/account.js';
31
31
  import { SettingsView } from './views/settings.js';
32
32
  import { ThreadListView } from './views/thread-list.js';
33
+ /**
34
+ * Plain English over assistant-ui's own words: the thing an end-user starts is
35
+ * a chat, not a thread, and "Chats" is what the list of them is called
36
+ * everywhere else they have seen one.
37
+ */
33
38
  const VIEW_TITLES = {
34
- thread: 'New Chat',
35
- list: 'Threads',
39
+ thread: 'New chat',
40
+ list: 'Chats',
36
41
  settings: 'Settings',
37
42
  account: 'Account',
38
43
  };
@@ -117,7 +122,7 @@ const ChatHeader = ({ view, onViewChange, end, signedIn }) => {
117
122
  // "Account" in both states. An icon-only button's name should say
118
123
  // where it goes, and "Sign in" here collided with the account form's
119
124
  // own submit button — two controls, one name, two different actions.
120
- tooltip: "Account", side: "bottom", "aria-pressed": view === 'account', className: cn(HEADER_BUTTON, 'relative'), onClick: toggle('account'), children: [_jsx(UserRoundIcon, { className: "size-3.5" }), signedIn ? (_jsx("span", { "aria-hidden": "true", className: "bg-primary absolute end-1 top-1 size-1.5 rounded-full max-sm:end-2 max-sm:top-2" })) : null] })), features.settings && (_jsx(TooltipIconButton, { tooltip: "Settings", side: "bottom", "aria-pressed": view === 'settings', className: HEADER_BUTTON, onClick: toggle('settings'), children: _jsx(SettingsIcon, { className: "size-3.5" }) })), features.threadList && (_jsx(TooltipIconButton, { tooltip: "Threads", side: "bottom", "aria-pressed": view === 'list', disabled: !hasThreads && view === 'thread', className: HEADER_BUTTON, onClick: toggle('list'), children: _jsx(HistoryIcon, { className: "size-3.5" }) })), _jsx(ThreadListPrimitive.New, { render: _jsx(TooltipIconButton, { tooltip: "New Thread", side: "bottom", className: HEADER_BUTTON, onClick: () => onViewChange('thread') }), children: _jsx(PlusIcon, { className: "size-3.5" }) }), end] })] }));
125
+ tooltip: "Account", side: "bottom", "aria-pressed": view === 'account', className: cn(HEADER_BUTTON, 'relative'), onClick: toggle('account'), children: [_jsx(UserRoundIcon, { className: "size-3.5" }), signedIn ? (_jsx("span", { "aria-hidden": "true", className: "bg-primary absolute end-1 top-1 size-1.5 rounded-full max-sm:end-2 max-sm:top-2" })) : null] })), features.settings && (_jsx(TooltipIconButton, { tooltip: "Settings", side: "bottom", "aria-pressed": view === 'settings', className: HEADER_BUTTON, onClick: toggle('settings'), children: _jsx(SettingsIcon, { className: "size-3.5" }) })), features.threadList && (_jsx(TooltipIconButton, { tooltip: "Chats", side: "bottom", "aria-pressed": view === 'list', disabled: !hasThreads && view === 'thread', className: HEADER_BUTTON, onClick: toggle('list'), children: _jsx(HistoryIcon, { className: "size-3.5" }) })), _jsx(ThreadListPrimitive.New, { render: _jsx(TooltipIconButton, { tooltip: "New chat", side: "bottom", className: HEADER_BUTTON, onClick: () => onViewChange('thread') }), children: _jsx(PlusIcon, { className: "size-3.5" }) }), end] })] }));
121
126
  };
122
127
  /* 28px on a mouse, 36px under a finger — the touch target, not the icon. */
123
128
  const HEADER_BUTTON = 'text-muted-foreground hover:text-foreground aria-pressed:bg-muted aria-pressed:text-foreground size-7 max-sm:size-9 rounded-md p-0';
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat/chat.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Earlier conversations, kept in the browser.
3
+ *
4
+ * The engine does not keep them. Its agent checkpointer is in-memory and it has
5
+ * no API to list or fetch a past conversation, so there is nothing server-side
6
+ * to read. It does not need to: the client replays the whole transcript with
7
+ * every message (`sendMessage` → `chat({ history })` → `sessions.ts`), so a
8
+ * conversation restored from here continues correctly even after a deploy.
9
+ *
10
+ * This module is the storage half — no React, no client, so the caps and the
11
+ * validation can be tested directly. {@link useConversations} owns the list.
12
+ *
13
+ * ## Shape
14
+ *
15
+ * One `localStorage` entry per partner key, holding one bucket per identity:
16
+ *
17
+ * ```
18
+ * t2v_chat_conversations_v1:<partnerKey>
19
+ * { v: 1, identities: { "u:<userId>": { updatedAt, conversations: [ … ] } } }
20
+ * ```
21
+ *
22
+ * One entry rather than one per conversation because the thing that actually
23
+ * fails is the origin's storage quota, and a quota is only enforceable against
24
+ * the string you are about to write. Writes are read-modify-write, so two tabs
25
+ * signed in as different people keep each other's buckets.
26
+ *
27
+ * ## Identity
28
+ *
29
+ * The bucket is the end-user's id and nothing else — not whether they are a
30
+ * guest. A guest has an id of their own, so a guest and a signed-in person on
31
+ * one device land in different buckets, as do two accounts. Converting a guest
32
+ * into an account keeps the same id (`POST /v1/auth/convert`), so the
33
+ * conversations survive the conversion without being moved.
34
+ */
35
+ import type { ConversationSnapshot, DisplayMessage } from '../../types.js';
36
+ /** What the thread list shows for a conversation with no first message yet. */
37
+ export declare const UNTITLED = "New chat";
38
+ /**
39
+ * Per identity. Fifty is far more than anyone accumulates in a side panel, and
40
+ * small enough to render in one list and to keep the stored blob modest. The
41
+ * size ceiling below usually binds first.
42
+ */
43
+ export declare const MAX_CONVERSATIONS = 50;
44
+ /**
45
+ * Identity buckets kept per partner. Signing out and back in as a guest mints a
46
+ * new anonymous id each time, so without this the entry would grow one dead
47
+ * bucket per visit. Eight keeps a shared machine's recent users and drops the
48
+ * rest, least recently used first.
49
+ */
50
+ export declare const MAX_IDENTITIES = 8;
51
+ /**
52
+ * Characters in the stored entry, across every identity. `localStorage` gives
53
+ * an origin about 5 MB in every current browser, and the chat is a guest in the
54
+ * partner's page — taking a tenth of their budget is the most it can justify.
55
+ * A conversation of twenty substantial turns is about 20 KB, so this is roughly
56
+ * twenty-five of them; the count cap above catches the short ones.
57
+ */
58
+ export declare const MAX_CHARS: number;
59
+ /** One conversation, as the list holds it in memory. */
60
+ export interface Conversation {
61
+ id: string;
62
+ /** From the first user message. Null until there is one — shown as {@link UNTITLED}. */
63
+ title: string | null;
64
+ /** Epoch ms. */
65
+ createdAt: number;
66
+ /** Epoch ms, last change of any kind. Orders the list and decides what is dropped. */
67
+ updatedAt: number;
68
+ snapshot: ConversationSnapshot;
69
+ }
70
+ /** The `localStorage` entry for one partner key. */
71
+ export declare function storageKey(partnerKey: string): string;
72
+ /**
73
+ * The bucket for an end-user. `null` — nobody signed in and no guest session
74
+ * yet — gets its own, which only ever holds the conversation a visitor started
75
+ * before anything authenticated; {@link useConversations} moves that one across
76
+ * when an id appears.
77
+ */
78
+ export declare function identityKey(userId: string | null | undefined): string;
79
+ /**
80
+ * A short title from the first user message: one line, cut at a word boundary.
81
+ * Null when there is nothing to make one from — an attachment with no text, or
82
+ * whitespace — and the caller shows {@link UNTITLED} instead.
83
+ */
84
+ export declare function titleFrom(message: DisplayMessage | undefined): string | null;
85
+ /**
86
+ * This identity's conversations, newest first.
87
+ *
88
+ * Never throws and never trusts what it finds: a private window refuses
89
+ * `localStorage` entirely, and the value itself is whatever anything else with
90
+ * access to this origin last wrote there. Anything that does not validate is
91
+ * dropped — one bad conversation, or the whole entry — and the chat carries on
92
+ * with no history rather than not at all.
93
+ */
94
+ export declare function readConversations(partnerKey: string, identity: string): Conversation[];
95
+ /**
96
+ * Replace this identity's conversations, keeping every other identity's as they
97
+ * are on disk. Returns false when nothing could be stored (no `localStorage`,
98
+ * or a quota that even the caps below could not get under), which the caller
99
+ * treats as "this device does not keep history" rather than as a failure.
100
+ *
101
+ * `current` is the conversation on screen: it is the one the caps must never
102
+ * drop, because dropping it would lose what the end-user is looking at.
103
+ */
104
+ export declare function writeConversations(partnerKey: string, identity: string, conversations: readonly Conversation[], current: string | null): boolean;
105
+ //# sourceMappingURL=conversation-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-store.d.ts","sourceRoot":"","sources":["../../../src/chat/lib/conversation-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,KAAK,EAAe,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAExF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,QAAa,CAAC;AAOpC,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAED,oDAAoD;AACpD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAErE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAK5E;AAYD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAStF;AAID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,YAAY,EAAE,EACtC,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAwBT"}
@@ -0,0 +1,278 @@
1
+ /** What the thread list shows for a conversation with no first message yet. */
2
+ export const UNTITLED = 'New chat';
3
+ /**
4
+ * Per identity. Fifty is far more than anyone accumulates in a side panel, and
5
+ * small enough to render in one list and to keep the stored blob modest. The
6
+ * size ceiling below usually binds first.
7
+ */
8
+ export const MAX_CONVERSATIONS = 50;
9
+ /**
10
+ * Identity buckets kept per partner. Signing out and back in as a guest mints a
11
+ * new anonymous id each time, so without this the entry would grow one dead
12
+ * bucket per visit. Eight keeps a shared machine's recent users and drops the
13
+ * rest, least recently used first.
14
+ */
15
+ export const MAX_IDENTITIES = 8;
16
+ /**
17
+ * Characters in the stored entry, across every identity. `localStorage` gives
18
+ * an origin about 5 MB in every current browser, and the chat is a guest in the
19
+ * partner's page — taking a tenth of their budget is the most it can justify.
20
+ * A conversation of twenty substantial turns is about 20 KB, so this is roughly
21
+ * twenty-five of them; the count cap above catches the short ones.
22
+ */
23
+ export const MAX_CHARS = 512 * 1024;
24
+ /** Longest title kept; longer first messages are cut at a word boundary. */
25
+ const MAX_TITLE = 60;
26
+ const KEY_PREFIX = 't2v_chat_conversations_v1:';
27
+ /** The `localStorage` entry for one partner key. */
28
+ export function storageKey(partnerKey) {
29
+ return KEY_PREFIX + partnerKey;
30
+ }
31
+ /**
32
+ * The bucket for an end-user. `null` — nobody signed in and no guest session
33
+ * yet — gets its own, which only ever holds the conversation a visitor started
34
+ * before anything authenticated; {@link useConversations} moves that one across
35
+ * when an id appears.
36
+ */
37
+ export function identityKey(userId) {
38
+ return userId ? `u:${userId}` : 'none';
39
+ }
40
+ /**
41
+ * A short title from the first user message: one line, cut at a word boundary.
42
+ * Null when there is nothing to make one from — an attachment with no text, or
43
+ * whitespace — and the caller shows {@link UNTITLED} instead.
44
+ */
45
+ export function titleFrom(message) {
46
+ const text = (message?.content ?? '').replace(/\s+/g, ' ').trim();
47
+ if (text)
48
+ return text.length <= MAX_TITLE ? text : cut(text);
49
+ const file = message?.attachments?.[0]?.filename?.trim();
50
+ return file ? (file.length <= MAX_TITLE ? file : cut(file)) : null;
51
+ }
52
+ function cut(text) {
53
+ const head = text.slice(0, MAX_TITLE);
54
+ const space = head.lastIndexOf(' ');
55
+ // Only break on a space if one is far enough in to leave a real title behind;
56
+ // a first word longer than that is cut mid-word rather than thrown away.
57
+ return (space > MAX_TITLE / 2 ? head.slice(0, space) : head).trimEnd() + '…';
58
+ }
59
+ // ── Reading ────────────────────────────────────────────────────────────────
60
+ /**
61
+ * This identity's conversations, newest first.
62
+ *
63
+ * Never throws and never trusts what it finds: a private window refuses
64
+ * `localStorage` entirely, and the value itself is whatever anything else with
65
+ * access to this origin last wrote there. Anything that does not validate is
66
+ * dropped — one bad conversation, or the whole entry — and the chat carries on
67
+ * with no history rather than not at all.
68
+ */
69
+ export function readConversations(partnerKey, identity) {
70
+ const file = readFile(partnerKey);
71
+ const bucket = file?.identities?.[identity];
72
+ if (!bucket)
73
+ return [];
74
+ return sortNewestFirst(asArray(bucket.conversations)
75
+ .map(parseConversation)
76
+ .filter((c) => c !== null));
77
+ }
78
+ // ── Writing ────────────────────────────────────────────────────────────────
79
+ /**
80
+ * Replace this identity's conversations, keeping every other identity's as they
81
+ * are on disk. Returns false when nothing could be stored (no `localStorage`,
82
+ * or a quota that even the caps below could not get under), which the caller
83
+ * treats as "this device does not keep history" rather than as a failure.
84
+ *
85
+ * `current` is the conversation on screen: it is the one the caps must never
86
+ * drop, because dropping it would lose what the end-user is looking at.
87
+ */
88
+ export function writeConversations(partnerKey, identity, conversations, current) {
89
+ const file = readFile(partnerKey) ?? { v: 1, identities: {} };
90
+ const identities = { ...file.identities };
91
+ const mine = sortNewestFirst([...conversations]).slice(0, MAX_CONVERSATIONS);
92
+ if (mine.length === 0) {
93
+ delete identities[identity];
94
+ }
95
+ else {
96
+ identities[identity] = { updatedAt: Date.now(), conversations: mine.map(serialise) };
97
+ }
98
+ // Least recently used identities go first: they are somebody else's old
99
+ // visit, where this one is on screen.
100
+ const ordered = Object.keys(identities)
101
+ .filter((key) => key !== identity)
102
+ .sort((a, b) => (identities[b]?.updatedAt ?? 0) - (identities[a]?.updatedAt ?? 0));
103
+ for (const key of ordered.slice(MAX_IDENTITIES - 1))
104
+ delete identities[key];
105
+ let json = JSON.stringify({ v: 1, identities });
106
+ while (json.length > MAX_CHARS) {
107
+ if (!dropOldest(identities, identity, current))
108
+ return remove(partnerKey);
109
+ json = JSON.stringify({ v: 1, identities });
110
+ }
111
+ return write(partnerKey, json);
112
+ }
113
+ /**
114
+ * Drop the single oldest conversation we are allowed to drop: another
115
+ * identity's first, then this one's, and never the one on screen. False when
116
+ * there is nothing left to give up.
117
+ */
118
+ function dropOldest(identities, identity, current) {
119
+ const candidates = [];
120
+ for (const [key, bucket] of Object.entries(identities)) {
121
+ bucket.conversations.forEach((conversation, index) => {
122
+ if (key === identity && conversation.id === current)
123
+ return;
124
+ candidates.push({
125
+ key,
126
+ index,
127
+ mine: key === identity,
128
+ updatedAt: typeof conversation.updatedAt === 'number' ? conversation.updatedAt : 0,
129
+ });
130
+ });
131
+ }
132
+ // Another identity's conversations go before any of this one's, however old:
133
+ // what this end-user can still open is worth more than what they cannot.
134
+ candidates.sort((a, b) => Number(a.mine) - Number(b.mine) || a.updatedAt - b.updatedAt);
135
+ const victim = candidates[0];
136
+ if (!victim)
137
+ return false;
138
+ const bucket = identities[victim.key];
139
+ bucket.conversations = bucket.conversations.filter((_, i) => i !== victim.index);
140
+ if (bucket.conversations.length === 0)
141
+ delete identities[victim.key];
142
+ return true;
143
+ }
144
+ /** Forget everything stored for this partner key. Always returns false: nothing is stored now. */
145
+ function remove(partnerKey) {
146
+ try {
147
+ localStorage.removeItem(storageKey(partnerKey));
148
+ }
149
+ catch {
150
+ // A private window, or storage the page is not allowed to touch at all.
151
+ }
152
+ return false;
153
+ }
154
+ function write(partnerKey, json) {
155
+ try {
156
+ localStorage.setItem(storageKey(partnerKey), json);
157
+ return true;
158
+ }
159
+ catch {
160
+ // Out of quota even under the caps, or storage refused outright. The list
161
+ // still works for the rest of this page's life; it just does not survive.
162
+ return false;
163
+ }
164
+ }
165
+ function serialise(conversation) {
166
+ return {
167
+ id: conversation.id,
168
+ title: conversation.title,
169
+ createdAt: conversation.createdAt,
170
+ updatedAt: conversation.updatedAt,
171
+ threadId: conversation.snapshot.threadId,
172
+ messages: conversation.snapshot.messages.map((message) => {
173
+ // `isStreaming` is deliberately dropped. A conversation left mid-reply is
174
+ // stored with the text that had arrived; restoring it with the flag still
175
+ // set would put a cursor on a message nothing is writing to.
176
+ const { isStreaming: _isStreaming, timestamp, ...rest } = message;
177
+ return { ...rest, timestamp: asDate(timestamp).toISOString() };
178
+ }),
179
+ history: conversation.snapshot.history,
180
+ };
181
+ }
182
+ function readFile(partnerKey) {
183
+ let raw;
184
+ try {
185
+ raw = localStorage.getItem(storageKey(partnerKey));
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ if (!raw)
191
+ return null;
192
+ try {
193
+ const parsed = JSON.parse(raw);
194
+ if (!isRecord(parsed) || !isRecord(parsed.identities))
195
+ return null;
196
+ const identities = {};
197
+ for (const [key, value] of Object.entries(parsed.identities)) {
198
+ if (!isRecord(value))
199
+ continue;
200
+ identities[key] = {
201
+ updatedAt: typeof value.updatedAt === 'number' ? value.updatedAt : 0,
202
+ conversations: asArray(value.conversations),
203
+ };
204
+ }
205
+ return { v: 1, identities };
206
+ }
207
+ catch {
208
+ return null;
209
+ }
210
+ }
211
+ /**
212
+ * One stored conversation, checked field by field. Anything missing or of the
213
+ * wrong type means the record is not ours — a half-written value, an older
214
+ * shape, or something hostile — and it is dropped rather than rendered.
215
+ */
216
+ function parseConversation(value) {
217
+ if (!isRecord(value) || typeof value.id !== 'string' || !value.id)
218
+ return null;
219
+ const messages = asArray(value.messages)
220
+ .map(parseMessage)
221
+ .filter((m) => m !== null);
222
+ const history = asArray(value.history).filter(isChatMessage);
223
+ const createdAt = typeof value.createdAt === 'number' ? value.createdAt : Date.now();
224
+ return {
225
+ id: value.id,
226
+ title: typeof value.title === 'string' && value.title ? value.title : null,
227
+ createdAt,
228
+ updatedAt: typeof value.updatedAt === 'number' ? value.updatedAt : createdAt,
229
+ snapshot: {
230
+ messages,
231
+ history,
232
+ threadId: typeof value.threadId === 'string' ? value.threadId : null,
233
+ },
234
+ };
235
+ }
236
+ function parseMessage(value) {
237
+ if (!isRecord(value))
238
+ return null;
239
+ if (typeof value.id !== 'string' || typeof value.content !== 'string')
240
+ return null;
241
+ if (value.role !== 'user' && value.role !== 'assistant')
242
+ return null;
243
+ const message = {
244
+ id: value.id,
245
+ role: value.role,
246
+ content: value.content,
247
+ timestamp: asDate(value.timestamp),
248
+ };
249
+ if (Array.isArray(value.attachments))
250
+ message.attachments = value.attachments;
251
+ if (typeof value.plan === 'string')
252
+ message.plan = value.plan;
253
+ if (Array.isArray(value.steps))
254
+ message.steps = value.steps;
255
+ return message;
256
+ }
257
+ /** `role` and `content` are all the engine is sent; content may be parts, not a string. */
258
+ function isChatMessage(value) {
259
+ if (!isRecord(value))
260
+ return false;
261
+ if (value.role !== 'user' && value.role !== 'assistant' && value.role !== 'system')
262
+ return false;
263
+ return typeof value.content === 'string' || Array.isArray(value.content);
264
+ }
265
+ function asDate(value) {
266
+ const date = value instanceof Date ? value : new Date(typeof value === 'string' ? value : NaN);
267
+ return Number.isNaN(date.getTime()) ? new Date(0) : date;
268
+ }
269
+ function isRecord(value) {
270
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
271
+ }
272
+ function asArray(value) {
273
+ return Array.isArray(value) ? value : [];
274
+ }
275
+ function sortNewestFirst(conversations) {
276
+ return conversations.sort((a, b) => b.updatedAt - a.updatedAt);
277
+ }
278
+ //# sourceMappingURL=conversation-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-store.js","sourceRoot":"","sources":["../../../src/chat/lib/conversation-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { ExternalStoreThreadListAdapter } from '@assistant-ui/react';
2
+ import type { Talk2View } from '../../index.js';
3
+ /**
4
+ * The thread-list adapter for `adapters.threadList`.
5
+ *
6
+ * With `enabled` false there is no list and nothing is stored, but New chat
7
+ * still works: it clears the conversation the way it always did, deleting the
8
+ * engine session too, because with no list there is no way back to it.
9
+ */
10
+ export declare function useConversations(client: Talk2View, { enabled }: {
11
+ enabled: boolean;
12
+ }): ExternalStoreThreadListAdapter;
13
+ //# sourceMappingURL=use-conversations.d.ts.map