@assistant-ui/react 0.11.37 → 0.11.39

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 (139) hide show
  1. package/dist/client/AssistantClient.d.ts.map +1 -1
  2. package/dist/client/AssistantClient.js +14 -30
  3. package/dist/client/AssistantClient.js.map +1 -1
  4. package/dist/client/ModelContextClient.d.ts +1 -1
  5. package/dist/client/NoOpComposerClient.d.ts +1 -1
  6. package/dist/client/ThreadMessageClient.d.ts +1 -1
  7. package/dist/client/Tools.d.ts +1 -1
  8. package/dist/client/Tools.d.ts.map +1 -1
  9. package/dist/client/Tools.js +29 -18
  10. package/dist/client/Tools.js.map +1 -1
  11. package/dist/client/types/Tools.d.ts +6 -1
  12. package/dist/client/types/Tools.d.ts.map +1 -1
  13. package/dist/context/react/AssistantApiContext.d.ts +2 -4
  14. package/dist/context/react/AssistantApiContext.d.ts.map +1 -1
  15. package/dist/context/react/AssistantApiContext.js +0 -7
  16. package/dist/context/react/AssistantApiContext.js.map +1 -1
  17. package/dist/context/react/hooks/useAssistantState.js +2 -2
  18. package/dist/context/react/hooks/useAssistantState.js.map +1 -1
  19. package/dist/legacy-runtime/RuntimeAdapter.d.ts +1 -1
  20. package/dist/legacy-runtime/client/AttachmentRuntimeClient.d.ts +1 -1
  21. package/dist/legacy-runtime/client/ComposerRuntimeClient.d.ts +1 -1
  22. package/dist/legacy-runtime/client/EventManagerRuntimeClient.d.ts +1 -1
  23. package/dist/legacy-runtime/client/MessagePartRuntimeClient.d.ts +1 -1
  24. package/dist/legacy-runtime/client/MessageRuntimeClient.d.ts +1 -1
  25. package/dist/legacy-runtime/client/ThreadListItemRuntimeClient.d.ts +1 -1
  26. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +1 -1
  27. package/dist/legacy-runtime/client/ThreadRuntimeClient.d.ts +1 -1
  28. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  29. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +2 -2
  30. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -1
  31. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js +2 -0
  32. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.js.map +1 -1
  33. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -1
  34. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js +7 -4
  35. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.js.map +1 -1
  36. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  37. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +34 -1
  38. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  39. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts.map +1 -1
  40. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js +9 -0
  41. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.js.map +1 -1
  42. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts +2 -1
  43. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts.map +1 -1
  44. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js +3 -0
  45. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.js.map +1 -1
  46. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts +1 -0
  47. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts.map +1 -1
  48. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +7 -2
  49. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -1
  50. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +17 -3
  51. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -1
  52. package/dist/model-context/index.d.ts +1 -1
  53. package/dist/model-context/index.d.ts.map +1 -1
  54. package/dist/model-context/index.js +0 -4
  55. package/dist/model-context/index.js.map +1 -1
  56. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  57. package/dist/model-context/makeAssistantVisible.js +21 -8
  58. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  59. package/dist/model-context/toolbox.d.ts +1 -19
  60. package/dist/model-context/toolbox.d.ts.map +1 -1
  61. package/dist/model-context/toolbox.js +0 -13
  62. package/dist/model-context/toolbox.js.map +1 -1
  63. package/dist/model-context/useAssistantTool.js +1 -1
  64. package/dist/model-context/useAssistantTool.js.map +1 -1
  65. package/dist/model-context/useAssistantToolUI.js +1 -1
  66. package/dist/model-context/useAssistantToolUI.js.map +1 -1
  67. package/dist/primitives/assistantModal/scope.d.ts +2 -3
  68. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  69. package/dist/primitives/assistantModal/scope.js.map +1 -1
  70. package/dist/primitives/index.d.ts +1 -0
  71. package/dist/primitives/index.d.ts.map +1 -1
  72. package/dist/primitives/index.js +2 -0
  73. package/dist/primitives/index.js.map +1 -1
  74. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  75. package/dist/primitives/message/MessageParts.js +4 -2
  76. package/dist/primitives/message/MessageParts.js.map +1 -1
  77. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  78. package/dist/primitives/message/MessagePartsGrouped.js +4 -2
  79. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  80. package/dist/primitives/messagePart/useMessagePartData.d.ts +3 -0
  81. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -0
  82. package/dist/primitives/messagePart/useMessagePartData.js +23 -0
  83. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -0
  84. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  85. package/dist/primitives/thread/useThreadViewportAutoScroll.js +11 -12
  86. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  87. package/dist/tests/setup.js +287 -125
  88. package/dist/tests/setup.js.map +1 -1
  89. package/dist/types/AssistantTypes.d.ts +2 -2
  90. package/dist/types/AssistantTypes.d.ts.map +1 -1
  91. package/dist/types/MessagePartTypes.d.ts +6 -1
  92. package/dist/types/MessagePartTypes.d.ts.map +1 -1
  93. package/dist/types/index.d.ts +1 -1
  94. package/dist/types/index.d.ts.map +1 -1
  95. package/dist/utils/tap-store/derived-scopes.d.ts +1 -1
  96. package/dist/utils/tap-store/derived-scopes.d.ts.map +1 -1
  97. package/package.json +9 -9
  98. package/src/client/AssistantClient.ts +14 -33
  99. package/src/client/Tools.ts +31 -22
  100. package/src/client/types/Tools.ts +11 -2
  101. package/src/context/react/AssistantApiContext.tsx +2 -11
  102. package/src/context/react/hooks/useAssistantState.tsx +2 -2
  103. package/src/legacy-runtime/cloud/auiV0.ts +1 -1
  104. package/src/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.tsx +10 -1
  105. package/src/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.tsx +7 -3
  106. package/src/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +49 -2
  107. package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.tsx +10 -0
  108. package/src/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.tsx +5 -0
  109. package/src/legacy-runtime/runtime-cores/remote-thread-list/types.tsx +1 -0
  110. package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +27 -3
  111. package/src/model-context/index.ts +1 -6
  112. package/src/model-context/makeAssistantVisible.tsx +23 -12
  113. package/src/model-context/toolbox.tsx +1 -21
  114. package/src/model-context/useAssistantTool.tsx +1 -1
  115. package/src/model-context/useAssistantToolUI.tsx +1 -1
  116. package/src/primitives/assistantModal/scope.tsx +3 -1
  117. package/src/primitives/index.ts +1 -0
  118. package/src/primitives/message/MessageParts.tsx +5 -3
  119. package/src/primitives/message/MessagePartsGrouped.tsx +5 -3
  120. package/src/primitives/messagePart/useMessagePartData.tsx +24 -0
  121. package/src/primitives/thread/useThreadViewportAutoScroll.tsx +14 -13
  122. package/src/types/AssistantTypes.ts +2 -0
  123. package/src/types/MessagePartTypes.ts +8 -1
  124. package/src/types/index.ts +1 -0
  125. package/dist/client/ToolUIClient.d.ts +0 -7
  126. package/dist/client/ToolUIClient.d.ts.map +0 -1
  127. package/dist/client/ToolUIClient.js +0 -71
  128. package/dist/client/ToolUIClient.js.map +0 -1
  129. package/dist/client/ToolUIContext.d.ts +0 -4
  130. package/dist/client/ToolUIContext.d.ts.map +0 -1
  131. package/dist/client/ToolUIContext.js +0 -20
  132. package/dist/client/ToolUIContext.js.map +0 -1
  133. package/dist/client/types/ToolUI.d.ts +0 -23
  134. package/dist/client/types/ToolUI.d.ts.map +0 -1
  135. package/dist/client/types/ToolUI.js +0 -1
  136. package/dist/client/types/ToolUI.js.map +0 -1
  137. package/src/client/ToolUIClient.ts +0 -76
  138. package/src/client/ToolUIContext.ts +0 -22
  139. package/src/client/types/ToolUI.ts +0 -27
@@ -1,7 +1,7 @@
1
1
  import type { CompleteAttachment } from "./AttachmentTypes";
2
2
  import type { ReadonlyJSONValue } from "assistant-stream/utils";
3
- import type { TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ThreadUserMessagePart, ThreadAssistantMessagePart } from "./MessagePartTypes";
4
- export type { TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ThreadUserMessagePart, ThreadAssistantMessagePart, };
3
+ import type { TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ThreadUserMessagePart, ThreadAssistantMessagePart } from "./MessagePartTypes";
4
+ export type { TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, ThreadUserMessagePart, ThreadAssistantMessagePart, };
5
5
  export type MessageRole = ThreadMessage["role"];
6
6
  type MessageCommonProps = {
7
7
  readonly id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantTypes.d.ts","sourceRoot":"","sources":["../../src/types/AssistantTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,GAC3B,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAEhD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EACX;QACE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,GACD,SAAS,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B,GACD,iBAAiB,CAAC;AAEtB,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;QACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC;QAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;QACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;QACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC;QAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC;QACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;QAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,CAAC;QACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,cAAc,EAAE,iBAAiB,CAAC;QAC3C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAC5D,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACrD,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAA;SAAE,CAAC;QACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IAEtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG;IACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;QAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;QACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAA;SAAE,CAAC;QACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CAAC,mBAAmB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"AssistantTypes.d.ts","sourceRoot":"","sources":["../../src/types/AssistantTypes.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,11 @@ export type Unstable_AudioMessagePart = {
36
36
  readonly format: "mp3" | "wav";
37
37
  };
38
38
  };
39
+ export type DataMessagePart<T = any> = {
40
+ readonly type: "data";
41
+ readonly name: string;
42
+ readonly data: T;
43
+ };
39
44
  export type ToolCallMessagePart<TArgs = ReadonlyJSONObject, TResult = unknown> = {
40
45
  readonly type: "tool-call";
41
46
  readonly toolCallId: string;
@@ -53,5 +58,5 @@ export type ToolCallMessagePart<TArgs = ReadonlyJSONObject, TResult = unknown> =
53
58
  readonly messages?: readonly ThreadMessage[];
54
59
  };
55
60
  export type ThreadUserMessagePart = TextMessagePart | ImageMessagePart | FileMessagePart | Unstable_AudioMessagePart;
56
- export type ThreadAssistantMessagePart = TextMessagePart | ReasoningMessagePart | ToolCallMessagePart | SourceMessagePart | FileMessagePart | ImageMessagePart;
61
+ export type ThreadAssistantMessagePart = TextMessagePart | ReasoningMessagePart | ToolCallMessagePart | SourceMessagePart | FileMessagePart | ImageMessagePart | DataMessagePart;
57
62
  //# sourceMappingURL=MessagePartTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartTypes.d.ts","sourceRoot":"","sources":["../../src/types/MessagePartTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,KAAK,GAAG,kBAAkB,EAC1B,OAAO,GAAG,OAAO,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,yBAAyB,CAAC;AAE9B,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,oBAAoB,GACpB,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,gBAAgB,CAAC"}
1
+ {"version":3,"file":"MessagePartTypes.d.ts","sourceRoot":"","sources":["../../src/types/MessagePartTypes.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export type { Attachment, PendingAttachment, CompleteAttachment, AttachmentStatus, } from "./AttachmentTypes";
2
- export type { AppendMessage, TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, MessageStatus, MessagePartStatus, ToolCallMessagePartStatus, ThreadUserMessagePart, ThreadAssistantMessagePart, ThreadSystemMessage, ThreadAssistantMessage, ThreadUserMessage, ThreadMessage, } from "./AssistantTypes";
2
+ export type { AppendMessage, TextMessagePart, ReasoningMessagePart, SourceMessagePart, ImageMessagePart, FileMessagePart, DataMessagePart, Unstable_AudioMessagePart, ToolCallMessagePart, MessageStatus, MessagePartStatus, ToolCallMessagePartStatus, ThreadUserMessagePart, ThreadAssistantMessagePart, ThreadSystemMessage, ThreadAssistantMessage, ThreadUserMessage, ThreadMessage, } from "./AssistantTypes";
3
3
  export type { EmptyMessagePartComponent, EmptyMessagePartProps, TextMessagePartComponent, TextMessagePartProps, ReasoningMessagePartComponent, ReasoningMessagePartProps, SourceMessagePartComponent, SourceMessagePartProps, ImageMessagePartComponent, ImageMessagePartProps, FileMessagePartComponent, FileMessagePartProps, Unstable_AudioMessagePartComponent, Unstable_AudioMessagePartProps, ToolCallMessagePartComponent, ToolCallMessagePartProps, ReasoningGroupProps, ReasoningGroupComponent, } from "./MessagePartComponentTypes";
4
4
  export type { ThreadListItemStatus } from "../legacy-runtime/runtime/ThreadListItemRuntime";
5
5
  export type { Unsubscribe } from "./Unsubscribe";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EAGzB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EAGzB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kCAAkC,EAClC,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAGrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,YAAY,EACV,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
@@ -76,6 +76,6 @@ export declare const DerivedScope: <TSource extends string | null, TQuery, TApi>
76
76
  * DerivedScopes resource - takes an object of DerivedScope resource elements and special callbacks,
77
77
  * and returns a Partial<AssistantApi> with all the derived fields.
78
78
  */
79
- export declare const DerivedScopes: import("@assistant-ui/tap").ResourceElementConstructor<Partial<AssistantApi>, DerivedScopesInput>;
79
+ export declare const DerivedScopes: import("@assistant-ui/tap").Resource<Partial<AssistantApi>, DerivedScopesInput>;
80
80
  export {};
81
81
  //# sourceMappingURL=derived-scopes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derived-scopes.d.ts","sourceRoot":"","sources":["../../../src/utils/tap-store/derived-scopes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,iBAAiB,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9D;;;;;GAKG;AACH,KAAK,WAAW,CAAC,CAAC,IAChB,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhE;;GAEG;AACH,KAAK,sBAAsB,GAAG;KAC3B,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,GAC1E,CAAC,GACD,KAAK;CACV,CAAC,MAAM,YAAY,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI;IAC5E,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,SAAS,cAAc,EACvD,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,EACxC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,KACrC,WAAW,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;KAC9B,CAAC,IAAI,sBAAsB,CAAC,CAAC,EAAE,eAAe,CAC7C,iBAAiB,CACf,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B;QACE,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC9C,CACF,CACF;CACF,GAAG,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACtB,OAAO,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI;;;YAKhC,OAAO;WACR,MAAM;8CAgBlB,CAAC;AAmBF;;;GAGG;AACH,eAAO,MAAM,aAAa,mGAyCzB,CAAC"}
1
+ {"version":3,"file":"derived-scopes.d.ts","sourceRoot":"","sources":["../../../src/utils/tap-store/derived-scopes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;GAEG;AACH,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,iBAAiB,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9D;;;;;GAKG;AACH,KAAK,WAAW,CAAC,CAAC,IAChB,CAAC,SAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhE;;GAEG;AACH,KAAK,sBAAsB,GAAG;KAC3B,CAAC,IAAI,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,GAC1E,CAAC,GACD,KAAK;CACV,CAAC,MAAM,YAAY,CAAC,CAAC;AAEtB;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI;IAC5E,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,SAAS,cAAc,EACvD,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,EACxC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,KACrC,WAAW,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;KAC9B,CAAC,IAAI,sBAAsB,CAAC,CAAC,EAAE,eAAe,CAC7C,iBAAiB,CACf,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC/B;QACE,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC9C,CACF,CACF;CACF,GAAG,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACtB,OAAO,SAAS,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI;;;YAKhC,OAAO;WACR,MAAM;8CAgBlB,CAAC;AAmBF;;;GAGG;AACH,eAAO,MAAM,aAAa,iFAyCzB,CAAC"}
package/package.json CHANGED
@@ -28,7 +28,7 @@
28
28
  "conversational-ui",
29
29
  "conversational-ai"
30
30
  ],
31
- "version": "0.11.37",
31
+ "version": "0.11.39",
32
32
  "license": "MIT",
33
33
  "type": "module",
34
34
  "exports": {
@@ -48,14 +48,14 @@
48
48
  ],
49
49
  "sideEffects": false,
50
50
  "dependencies": {
51
- "assistant-cloud": "^0.1.6",
52
- "@assistant-ui/tap": "^0.1.5",
51
+ "assistant-cloud": "^0.1.7",
52
+ "@assistant-ui/tap": "^0.2.1",
53
53
  "@radix-ui/primitive": "^1.1.3",
54
54
  "@radix-ui/react-compose-refs": "^1.1.2",
55
- "@radix-ui/react-context": "^1.1.2",
55
+ "@radix-ui/react-context": "^1.1.3",
56
56
  "@radix-ui/react-popover": "^1.1.15",
57
- "@radix-ui/react-primitive": "^2.1.3",
58
- "@radix-ui/react-slot": "^1.2.3",
57
+ "@radix-ui/react-primitive": "^2.1.4",
58
+ "@radix-ui/react-slot": "^1.2.4",
59
59
  "@radix-ui/react-use-callback-ref": "^1.1.1",
60
60
  "@radix-ui/react-use-escape-keydown": "^1.1.1",
61
61
  "@standard-schema/spec": "^1.0.0",
@@ -84,11 +84,11 @@
84
84
  "@stryker-mutator/core": "^9.3.0",
85
85
  "@stryker-mutator/vitest-runner": "^9.3.0",
86
86
  "@types/json-schema": "^7.0.15",
87
- "@types/node": "^24.10.0",
87
+ "@types/node": "^24.10.1",
88
88
  "eslint": "^9",
89
- "eslint-config-next": "16.0.1",
89
+ "eslint-config-next": "16.0.3",
90
90
  "tsx": "^4.20.6",
91
- "vitest": "^4.0.6",
91
+ "vitest": "^4.0.8",
92
92
  "@assistant-ui/x-buildutils": "0.0.1"
93
93
  },
94
94
  "publishConfig": {
@@ -24,18 +24,14 @@ import {
24
24
  useAssistantApiImpl,
25
25
  extendApi,
26
26
  } from "../context/react/AssistantApiContext";
27
- import { ToolUIClient } from "./ToolUIClient";
28
27
  import { withEventsProvider } from "./EventContext";
29
28
  import { withModelContextProvider } from "./ModelContext";
30
- import { withToolUIProvider } from "./ToolUIContext";
31
- import { ToolUIApi, ToolUIState } from "./types/ToolUI";
32
29
  import { ToolsApi, ToolsState } from "./types/Tools";
33
30
  import { ModelContextApi, ModelContextState } from "./types/ModelContext";
34
31
  import { ModelContext as ModelContextResource } from "./ModelContextClient";
35
32
 
36
33
  type AssistantClientState = {
37
34
  readonly threads: ThreadListClientState;
38
- readonly toolUIs: ToolUIState;
39
35
  readonly tools: ToolsState;
40
36
  readonly modelContext: ModelContextState;
41
37
  };
@@ -44,7 +40,6 @@ type AssistantClientApi = {
44
40
  getState(): AssistantClientState;
45
41
 
46
42
  readonly threads: ThreadListClientApi;
47
- readonly toolUIs: ToolUIApi;
48
43
  readonly tools: ToolsApi;
49
44
  readonly modelContext: ModelContextApi;
50
45
 
@@ -61,44 +56,35 @@ const AssistantStore = resource(
61
56
  tools: toolsEl,
62
57
  }: AssistantClientProps) => {
63
58
  const events = tapInlineResource(EventManager());
64
- const toolUIsResource = tapInlineResource(ToolUIClient());
65
59
 
66
- const { threads, toolUIs, tools, modelContext } = withEventsProvider(
67
- events,
68
- () => {
69
- const modelContextResource = tapResource(
70
- modelContextEl ?? ModelContextResource(),
71
- [modelContextEl],
72
- );
60
+ const { threads, tools, modelContext } = withEventsProvider(events, () => {
61
+ const modelContextResource = tapResource(
62
+ modelContextEl ?? ModelContextResource(),
63
+ [modelContextEl],
64
+ );
73
65
 
74
- return withModelContextProvider(modelContextResource.api, () => {
75
- return withToolUIProvider(toolUIsResource.api, () => {
76
- return {
77
- toolUIs: toolUIsResource,
78
- modelContext: modelContextResource,
79
- tools: tapResource(toolsEl ?? Tools({}), [toolsEl]),
80
- threads: tapResource(threadsEl, [threadsEl]),
81
- };
82
- });
83
- });
84
- },
85
- );
66
+ return withModelContextProvider(modelContextResource.api, () => {
67
+ return {
68
+ modelContext: modelContextResource,
69
+ tools: tapResource(toolsEl ?? Tools({}), [toolsEl]),
70
+ threads: tapResource(threadsEl, [threadsEl]),
71
+ };
72
+ });
73
+ });
86
74
 
87
75
  const state = tapMemo<AssistantClientState>(
88
76
  () => ({
89
77
  threads: threads.state,
90
- toolUIs: toolUIs.state,
91
78
  tools: tools.state,
92
79
  modelContext: modelContext.state,
93
80
  }),
94
- [threads.state, toolUIs.state, tools.state, modelContext.state],
81
+ [threads.state, tools.state, modelContext.state],
95
82
  );
96
83
 
97
84
  return tapApi<AssistantClientApi>({
98
85
  getState: () => state,
99
86
 
100
87
  threads: threads.api,
101
- toolUIs: toolUIs.api,
102
88
  tools: tools.api,
103
89
  modelContext: modelContext.api,
104
90
  on: events.on,
@@ -116,11 +102,6 @@ const getClientFromStore = (client: Store<{ api: AssistantClientApi }>) => {
116
102
  query: {},
117
103
  get: () => client.getState().api.threads,
118
104
  }),
119
- toolUIs: createAssistantApiField({
120
- source: "root",
121
- query: {},
122
- get: () => client.getState().api.toolUIs,
123
- }),
124
105
  tools: createAssistantApiField({
125
106
  source: "root",
126
107
  query: {},
@@ -1,41 +1,25 @@
1
1
  import { resource, tapState, tapEffect } from "@assistant-ui/tap";
2
2
  import { tapApi } from "../utils/tap-store";
3
3
  import { tapModelContext } from "./ModelContext";
4
- import { tapToolUI } from "./ToolUIContext";
5
4
  import { ToolsState, ToolsApi } from "./types/Tools";
6
5
  import type { Tool } from "assistant-stream";
7
- import {
8
- type Toolkit,
9
- FallbackSymbol,
10
- LayoutSymbol,
11
- } from "../model-context/toolbox";
6
+ import { type Toolkit } from "../model-context/toolbox";
12
7
 
13
8
  export const Tools = resource(({ toolkit }: { toolkit?: Toolkit }) => {
14
- const [state] = tapState<ToolsState>(() => ({}));
9
+ const [state, setState] = tapState<ToolsState>(() => ({
10
+ tools: {},
11
+ }));
15
12
 
16
13
  const modelContext = tapModelContext();
17
- const toolUI = tapToolUI();
18
14
 
19
15
  tapEffect(() => {
20
16
  if (!toolkit) return;
21
17
  const unsubscribes: (() => void)[] = [];
22
18
 
23
- // Register fallback UI
24
- const fallback = toolkit[FallbackSymbol];
25
- if (fallback?.render) {
26
- unsubscribes.push(toolUI.setFallbackToolUI(fallback.render));
27
- }
28
-
29
- // Register layout
30
- const layout = toolkit[LayoutSymbol];
31
- if (layout?.render) {
32
- unsubscribes.push(toolUI.setToolUILayout(layout.render));
33
- }
34
-
35
19
  // Register tool UIs (exclude symbols)
36
20
  for (const [toolName, tool] of Object.entries(toolkit)) {
37
21
  if (tool.render) {
38
- unsubscribes.push(toolUI.setToolUI(toolName, tool.render));
22
+ unsubscribes.push(setToolUI(toolName, tool.render));
39
23
  }
40
24
  }
41
25
 
@@ -60,9 +44,34 @@ export const Tools = resource(({ toolkit }: { toolkit?: Toolkit }) => {
60
44
  return () => {
61
45
  unsubscribes.forEach((fn) => fn());
62
46
  };
63
- }, [toolkit, modelContext, toolUI]);
47
+ }, [toolkit, modelContext]);
48
+
49
+ const setToolUI = (toolName: string, render: any) => {
50
+ setState((prev) => {
51
+ return {
52
+ ...prev,
53
+ tools: {
54
+ ...prev.tools,
55
+ [toolName]: [...(prev.tools[toolName] ?? []), render],
56
+ },
57
+ };
58
+ });
59
+
60
+ return () => {
61
+ setState((prev) => {
62
+ return {
63
+ ...prev,
64
+ tools: {
65
+ ...prev.tools,
66
+ [toolName]: prev.tools[toolName]?.filter((r) => r !== render) ?? [],
67
+ },
68
+ };
69
+ });
70
+ };
71
+ };
64
72
 
65
73
  return tapApi<ToolsApi>({
66
74
  getState: () => state,
75
+ setToolUI,
67
76
  });
68
77
  });
@@ -1,8 +1,17 @@
1
- // eslint-disable-next-line @typescript-eslint/no-empty-object-type
2
- export type ToolsState = {};
1
+ import { Unsubscribe } from "@assistant-ui/tap";
2
+ import { ToolCallMessagePartComponent } from "../../types";
3
+
4
+ export type ToolsState = {
5
+ tools: Record<string, ToolCallMessagePartComponent[]>;
6
+ };
3
7
 
4
8
  export type ToolsApi = {
5
9
  getState(): ToolsState;
10
+
11
+ setToolUI(
12
+ toolName: string,
13
+ render: ToolCallMessagePartComponent,
14
+ ): Unsubscribe;
6
15
  };
7
16
 
8
17
  export type ToolsMeta = {
@@ -10,7 +10,6 @@ import {
10
10
  } from "react";
11
11
  import { useResource } from "@assistant-ui/tap/react";
12
12
 
13
- import { ToolUIApi, ToolUIState, ToolUIMeta } from "../../client/types/ToolUI";
14
13
  import {
15
14
  MessageClientApi,
16
15
  MessageClientState,
@@ -49,7 +48,7 @@ import {
49
48
  AssistantClientProps,
50
49
  useAssistantClient,
51
50
  } from "../../client/AssistantClient";
52
- import { ToolsApi, ToolsMeta } from "../../client/types/Tools";
51
+ import { ToolsApi, ToolsMeta, ToolsState } from "../../client/types/Tools";
53
52
  import {
54
53
  ModelContextApi,
55
54
  ModelContextMeta,
@@ -61,7 +60,7 @@ import {
61
60
 
62
61
  export type AssistantState = {
63
62
  readonly threads: ThreadListClientState;
64
- readonly toolUIs: ToolUIState;
63
+ readonly tools: ToolsState;
65
64
 
66
65
  readonly threadListItem: ThreadListItemClientState;
67
66
  readonly thread: ThreadClientState;
@@ -122,7 +121,6 @@ type AttachmentMeta = {
122
121
 
123
122
  export type AssistantApi = {
124
123
  threads: AssistantApiField<ThreadListClientApi, ThreadsMeta>;
125
- toolUIs: AssistantApiField<ToolUIApi, ToolUIMeta>;
126
124
  tools: AssistantApiField<ToolsApi, ToolsMeta>;
127
125
  modelContext: AssistantApiField<ModelContextApi, ModelContextMeta>;
128
126
  threadListItem: AssistantApiField<
@@ -168,13 +166,6 @@ const AssistantApiContext = createContext<AssistantApi>({
168
166
  throw new Error("Threads is only available inside <AssistantProvider />");
169
167
  },
170
168
  }),
171
- toolUIs: createAssistantApiField({
172
- source: null,
173
- query: {},
174
- get: (): never => {
175
- throw new Error("ToolUIs is only available inside <AssistantProvider />");
176
- },
177
- }),
178
169
  tools: createAssistantApiField({
179
170
  source: null,
180
171
  query: {},
@@ -15,8 +15,8 @@ class ProxiedAssistantState implements AssistantState {
15
15
  return this.#api.threads().getState();
16
16
  }
17
17
 
18
- get toolUIs() {
19
- return this.#api.toolUIs().getState();
18
+ get tools() {
19
+ return this.#api.tools().getState();
20
20
  }
21
21
 
22
22
  get threadListItem() {
@@ -112,7 +112,7 @@ export const auiV0Encode = (message: ThreadMessage): AuiV0Message => {
112
112
  }
113
113
 
114
114
  default: {
115
- const unhandledType: "image" | "file" | "audio" = type;
115
+ const unhandledType: "image" | "file" | "audio" | "data" = type;
116
116
  throw new Error(
117
117
  `Message part type not supported by aui/v0: ${unhandledType}`,
118
118
  );
@@ -12,6 +12,7 @@ import {
12
12
  ThreadSystemMessage,
13
13
  CompleteAttachment,
14
14
  FileMessagePart,
15
+ DataMessagePart,
15
16
  Unstable_AudioMessagePart,
16
17
  } from "../../../types";
17
18
  import {
@@ -31,6 +32,7 @@ export type ThreadMessageLike = {
31
32
  | SourceMessagePart
32
33
  | ImageMessagePart
33
34
  | FileMessagePart
35
+ | DataMessagePart
34
36
  | Unstable_AudioMessagePart
35
37
  | {
36
38
  readonly type: "tool-call";
@@ -123,6 +125,9 @@ export const fromThreadMessageLike = (
123
125
  case "image":
124
126
  return sanitizeImageContent(part);
125
127
 
128
+ case "data":
129
+ return part;
130
+
126
131
  case "tool-call": {
127
132
  const { parentId, messages, ...basePart } = part;
128
133
  const commonProps = {
@@ -182,7 +187,11 @@ export const fromThreadMessageLike = (
182
187
  return part;
183
188
 
184
189
  default: {
185
- const unhandledType: "tool-call" | "reasoning" | "source" = type;
190
+ const unhandledType:
191
+ | "tool-call"
192
+ | "reasoning"
193
+ | "source"
194
+ | "data" = type;
186
195
  throw new Error(
187
196
  `Unsupported user message part type: ${unhandledType}`,
188
197
  );
@@ -152,6 +152,7 @@ export class LocalThreadRuntimeCore
152
152
  this._options.adapters.history?.append({
153
153
  parentId: message.parentId,
154
154
  message: newMessage,
155
+ ...(message.runConfig !== undefined && { runConfig: message.runConfig }),
155
156
  });
156
157
 
157
158
  const startRun = message.startRun ?? message.role === "user";
@@ -183,8 +184,6 @@ export class LocalThreadRuntimeCore
183
184
  ): Promise<void> {
184
185
  this.ensureInitialized();
185
186
 
186
- this.repository.resetHead(parentId);
187
-
188
187
  // add assistant message
189
188
  const id = generateId();
190
189
  let message: ThreadAssistantMessage = {
@@ -254,7 +253,7 @@ export class LocalThreadRuntimeCore
254
253
  runConfig: RunConfig | undefined,
255
254
  runCallback?: ChatModelAdapter["run"],
256
255
  ) {
257
- const messages = this.repository.getMessages();
256
+ const messages = parentId ? this.repository.getMessages(parentId) : [];
258
257
 
259
258
  // abort existing run
260
259
  this.abortController?.abort();
@@ -327,6 +326,10 @@ export class LocalThreadRuntimeCore
327
326
  type: "running",
328
327
  },
329
328
  });
329
+
330
+ // Switch to the new message branch right after adding it for the first time
331
+ this.repository.resetHead(message.id);
332
+ this._notifySubscribers();
330
333
  }
331
334
 
332
335
  try {
@@ -401,6 +404,7 @@ export class LocalThreadRuntimeCore
401
404
  await this._options.adapters.history?.append({
402
405
  parentId,
403
406
  message: message,
407
+ runConfig: this._lastRunConfig,
404
408
  });
405
409
  }
406
410
  }
@@ -308,9 +308,56 @@ export class RemoteThreadListThreadListRuntimeCore
308
308
  }
309
309
 
310
310
  public async switchToThread(threadIdOrRemoteId: string): Promise<void> {
311
- const data = this.getItemById(threadIdOrRemoteId);
312
- if (!data) throw new Error("Thread not found");
311
+ let data = this.getItemById(threadIdOrRemoteId);
312
+
313
+ if (!data) {
314
+ const remoteMetadata =
315
+ await this._options.adapter.fetch(threadIdOrRemoteId);
316
+ const state = this._state.value;
317
+ const mappingId = createThreadMappingId(remoteMetadata.remoteId);
318
+
319
+ const newThreadData = {
320
+ ...state.threadData,
321
+ [mappingId]: {
322
+ id: mappingId,
323
+ initializeTask: Promise.resolve({
324
+ remoteId: remoteMetadata.remoteId,
325
+ externalId: remoteMetadata.externalId,
326
+ }),
327
+ remoteId: remoteMetadata.remoteId,
328
+ externalId: remoteMetadata.externalId,
329
+ status: remoteMetadata.status,
330
+ title: remoteMetadata.title,
331
+ } as RemoteThreadData,
332
+ };
333
+
334
+ const newThreadIdMap = {
335
+ ...state.threadIdMap,
336
+ [remoteMetadata.remoteId]: mappingId,
337
+ };
338
+
339
+ const newThreadIds =
340
+ remoteMetadata.status === "regular"
341
+ ? [...state.threadIds, remoteMetadata.remoteId]
342
+ : state.threadIds;
343
+
344
+ const newArchivedThreadIds =
345
+ remoteMetadata.status === "archived"
346
+ ? [...state.archivedThreadIds, remoteMetadata.remoteId]
347
+ : state.archivedThreadIds;
313
348
 
349
+ this._state.update({
350
+ ...state,
351
+ threadIds: newThreadIds,
352
+ archivedThreadIds: newArchivedThreadIds,
353
+ threadIdMap: newThreadIdMap,
354
+ threadData: newThreadData,
355
+ });
356
+
357
+ data = this.getItemById(threadIdOrRemoteId);
358
+ }
359
+
360
+ if (!data) throw new Error("Thread not found");
314
361
  if (this._mainThreadId === data.id) return;
315
362
 
316
363
  const task = this._hookManager.startThreadRuntime(data.id);
@@ -121,6 +121,16 @@ export const useCloudThreadListAdapter = (
121
121
  });
122
122
  },
123
123
 
124
+ fetch: async (threadId: string) => {
125
+ const thread = await cloud.threads.get(threadId);
126
+ return {
127
+ status: thread.is_archived ? "archived" : "regular",
128
+ remoteId: thread.id,
129
+ title: thread.title,
130
+ externalId: thread.external_id ?? undefined,
131
+ };
132
+ },
133
+
124
134
  unstable_Provider,
125
135
  };
126
136
  };
@@ -3,6 +3,7 @@ import {
3
3
  RemoteThreadInitializeResponse,
4
4
  RemoteThreadListAdapter,
5
5
  RemoteThreadListResponse,
6
+ RemoteThreadMetadata,
6
7
  } from "../types";
7
8
 
8
9
  export class InMemoryThreadListAdapter implements RemoteThreadListAdapter {
@@ -35,4 +36,8 @@ export class InMemoryThreadListAdapter implements RemoteThreadListAdapter {
35
36
  generateTitle(): Promise<AssistantStream> {
36
37
  return Promise.resolve(new ReadableStream<AssistantStreamChunk>());
37
38
  }
39
+
40
+ fetch(_threadId: string): Promise<RemoteThreadMetadata> {
41
+ return Promise.reject(new Error("Thread not found"));
42
+ }
38
43
  }
@@ -31,6 +31,7 @@ export type RemoteThreadListAdapter = {
31
31
  remoteId: string,
32
32
  unstable_messages: readonly ThreadMessage[],
33
33
  ): Promise<AssistantStream>;
34
+ fetch(threadId: string): Promise<RemoteThreadMetadata>;
34
35
 
35
36
  unstable_Provider?: ComponentType<PropsWithChildren>;
36
37
  };