@assistant-ui/react 0.11.34 → 0.11.36

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 (216) hide show
  1. package/dist/augmentations.d.ts +9 -0
  2. package/dist/augmentations.d.ts.map +1 -1
  3. package/dist/client/AssistantClient.d.ts +13 -57
  4. package/dist/client/AssistantClient.d.ts.map +1 -1
  5. package/dist/client/AssistantClient.js +49 -26
  6. package/dist/client/AssistantClient.js.map +1 -1
  7. package/dist/client/ModelContext.d.ts +8 -0
  8. package/dist/client/ModelContext.d.ts.map +1 -0
  9. package/dist/client/ModelContext.js +21 -0
  10. package/dist/client/ModelContext.js.map +1 -0
  11. package/dist/client/ModelContextClient.d.ts +7 -0
  12. package/dist/client/ModelContextClient.d.ts.map +1 -0
  13. package/dist/client/ModelContextClient.js +18 -0
  14. package/dist/client/ModelContextClient.js.map +1 -0
  15. package/dist/client/ToolUIClient.d.ts.map +1 -1
  16. package/dist/client/ToolUIClient.js +45 -3
  17. package/dist/client/ToolUIClient.js.map +1 -1
  18. package/dist/client/ToolUIContext.d.ts +4 -0
  19. package/dist/client/ToolUIContext.d.ts.map +1 -0
  20. package/dist/client/ToolUIContext.js +20 -0
  21. package/dist/client/ToolUIContext.js.map +1 -0
  22. package/dist/client/Tools.d.ts +10 -0
  23. package/dist/client/Tools.d.ts.map +1 -0
  24. package/dist/client/Tools.js +55 -0
  25. package/dist/client/Tools.js.map +1 -0
  26. package/dist/client/types/ModelContext.d.ts +12 -0
  27. package/dist/client/types/ModelContext.d.ts.map +1 -0
  28. package/dist/client/types/ModelContext.js +1 -0
  29. package/dist/client/types/ModelContext.js.map +1 -0
  30. package/dist/client/types/ThreadList.d.ts.map +1 -1
  31. package/dist/client/types/ToolUI.d.ts +12 -1
  32. package/dist/client/types/ToolUI.d.ts.map +1 -1
  33. package/dist/client/types/Tools.d.ts +9 -0
  34. package/dist/client/types/Tools.d.ts.map +1 -0
  35. package/dist/client/types/Tools.js +1 -0
  36. package/dist/client/types/Tools.js.map +1 -0
  37. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -1
  38. package/dist/context/providers/AttachmentByIndexProvider.js +20 -24
  39. package/dist/context/providers/AttachmentByIndexProvider.js.map +1 -1
  40. package/dist/context/providers/MessageByIndexProvider.d.ts.map +1 -1
  41. package/dist/context/providers/MessageByIndexProvider.js +27 -29
  42. package/dist/context/providers/MessageByIndexProvider.js.map +1 -1
  43. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  44. package/dist/context/providers/MessageProvider.js +11 -13
  45. package/dist/context/providers/MessageProvider.js.map +1 -1
  46. package/dist/context/providers/PartByIndexProvider.d.ts.map +1 -1
  47. package/dist/context/providers/PartByIndexProvider.js +11 -13
  48. package/dist/context/providers/PartByIndexProvider.js.map +1 -1
  49. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -1
  50. package/dist/context/providers/TextMessagePartProvider.js +11 -13
  51. package/dist/context/providers/TextMessagePartProvider.js.map +1 -1
  52. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -1
  53. package/dist/context/providers/ThreadListItemProvider.js +41 -45
  54. package/dist/context/providers/ThreadListItemProvider.js.map +1 -1
  55. package/dist/context/react/AssistantApiContext.d.ts +33 -4
  56. package/dist/context/react/AssistantApiContext.d.ts.map +1 -1
  57. package/dist/context/react/AssistantApiContext.js +35 -17
  58. package/dist/context/react/AssistantApiContext.js.map +1 -1
  59. package/dist/context/react/index.d.ts +1 -1
  60. package/dist/context/react/index.d.ts.map +1 -1
  61. package/dist/context/react/index.js +5 -1
  62. package/dist/context/react/index.js.map +1 -1
  63. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  64. package/dist/legacy-runtime/AssistantRuntimeProvider.js +7 -9
  65. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  66. package/dist/legacy-runtime/RuntimeAdapter.d.ts +7 -0
  67. package/dist/legacy-runtime/RuntimeAdapter.d.ts.map +1 -0
  68. package/dist/legacy-runtime/RuntimeAdapter.js +20 -0
  69. package/dist/legacy-runtime/RuntimeAdapter.js.map +1 -0
  70. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts +2 -0
  71. package/dist/legacy-runtime/client/ThreadListRuntimeClient.d.ts.map +1 -1
  72. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js +6 -2
  73. package/dist/legacy-runtime/client/ThreadListRuntimeClient.js.map +1 -1
  74. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +14 -1
  75. package/dist/legacy-runtime/hooks/AssistantContext.d.ts.map +1 -1
  76. package/dist/legacy-runtime/hooks/AssistantContext.js +1 -1
  77. package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -1
  78. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +6 -0
  79. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -1
  80. package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -1
  81. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +41 -2
  82. package/dist/legacy-runtime/hooks/ComposerContext.d.ts.map +1 -1
  83. package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -1
  84. package/dist/legacy-runtime/hooks/MessageContext.d.ts +36 -2
  85. package/dist/legacy-runtime/hooks/MessageContext.d.ts.map +1 -1
  86. package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -1
  87. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +6 -0
  88. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts.map +1 -1
  89. package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -1
  90. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +26 -1
  91. package/dist/legacy-runtime/hooks/ThreadContext.d.ts.map +1 -1
  92. package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -1
  93. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +6 -0
  94. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts.map +1 -1
  95. package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -1
  96. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts +2 -2
  97. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.d.ts.map +1 -1
  98. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.js +4 -2
  99. package/dist/legacy-runtime/runtime-cores/assistant-transport/index.js.map +1 -1
  100. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +2 -0
  101. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  102. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +3 -0
  103. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  104. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +14 -4
  105. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  106. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts +1 -0
  107. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts.map +1 -1
  108. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts +1 -0
  109. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
  110. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js +3 -0
  111. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.js.map +1 -1
  112. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts +4 -1
  113. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -1
  114. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js +2 -2
  115. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.js.map +1 -1
  116. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  117. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js +7 -1
  118. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  119. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts +2 -12
  120. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts.map +1 -1
  121. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js +45 -15
  122. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.js.map +1 -1
  123. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts +2 -0
  124. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -1
  125. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js +4 -2
  126. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.js.map +1 -1
  127. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts +4 -1
  128. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts.map +1 -1
  129. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js +2 -2
  130. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.js.map +1 -1
  131. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +1 -1
  132. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js.map +1 -1
  133. package/dist/model-context/index.d.ts +2 -0
  134. package/dist/model-context/index.d.ts.map +1 -1
  135. package/dist/model-context/index.js +6 -0
  136. package/dist/model-context/index.js.map +1 -1
  137. package/dist/model-context/makeAssistantVisible.js +1 -1
  138. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  139. package/dist/model-context/toolbox.d.ts +28 -0
  140. package/dist/model-context/toolbox.d.ts.map +1 -0
  141. package/dist/model-context/toolbox.js +15 -0
  142. package/dist/model-context/toolbox.js.map +1 -0
  143. package/dist/model-context/useAssistantInstructions.js +1 -1
  144. package/dist/model-context/useAssistantInstructions.js.map +1 -1
  145. package/dist/model-context/useAssistantTool.js +1 -1
  146. package/dist/model-context/useAssistantTool.js.map +1 -1
  147. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  148. package/dist/primitives/message/MessageParts.js +2 -2
  149. package/dist/primitives/message/MessageParts.js.map +1 -1
  150. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  151. package/dist/primitives/message/MessagePartsGrouped.js +2 -2
  152. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  153. package/dist/tests/setup.js +8 -11
  154. package/dist/tests/setup.js.map +1 -1
  155. package/dist/utils/tap-store/derived-scopes.d.ts +81 -0
  156. package/dist/utils/tap-store/derived-scopes.d.ts.map +1 -0
  157. package/dist/utils/tap-store/derived-scopes.js +67 -0
  158. package/dist/utils/tap-store/derived-scopes.js.map +1 -0
  159. package/dist/utils/tap-store/index.d.ts +1 -0
  160. package/dist/utils/tap-store/index.d.ts.map +1 -1
  161. package/dist/utils/tap-store/index.js +4 -0
  162. package/dist/utils/tap-store/index.js.map +1 -1
  163. package/dist/utils/tap-store/tap-api.js +1 -1
  164. package/dist/utils/tap-store/tap-api.js.map +1 -1
  165. package/package.json +9 -9
  166. package/src/augmentations.ts +12 -0
  167. package/src/client/AssistantClient.ts +64 -38
  168. package/src/client/ModelContext.ts +28 -0
  169. package/src/client/ModelContextClient.ts +16 -0
  170. package/src/client/ToolUIClient.ts +50 -3
  171. package/src/client/ToolUIContext.ts +22 -0
  172. package/src/client/Tools.ts +68 -0
  173. package/src/client/types/ModelContext.ts +15 -0
  174. package/src/client/types/ThreadList.ts +4 -0
  175. package/src/client/types/ToolUI.ts +10 -1
  176. package/src/client/types/Tools.ts +11 -0
  177. package/src/context/providers/AttachmentByIndexProvider.tsx +21 -25
  178. package/src/context/providers/MessageByIndexProvider.tsx +31 -33
  179. package/src/context/providers/MessageProvider.tsx +12 -14
  180. package/src/context/providers/PartByIndexProvider.tsx +12 -14
  181. package/src/context/providers/TextMessagePartProvider.tsx +12 -14
  182. package/src/context/providers/ThreadListItemProvider.tsx +42 -46
  183. package/src/context/react/AssistantApiContext.tsx +69 -29
  184. package/src/context/react/index.ts +5 -1
  185. package/src/legacy-runtime/AssistantRuntimeProvider.tsx +7 -9
  186. package/src/legacy-runtime/RuntimeAdapter.ts +19 -0
  187. package/src/legacy-runtime/client/ThreadListRuntimeClient.ts +10 -1
  188. package/src/legacy-runtime/hooks/AssistantContext.ts +16 -2
  189. package/src/legacy-runtime/hooks/AttachmentContext.ts +6 -0
  190. package/src/legacy-runtime/hooks/ComposerContext.ts +41 -2
  191. package/src/legacy-runtime/hooks/MessageContext.ts +37 -2
  192. package/src/legacy-runtime/hooks/MessagePartContext.ts +6 -0
  193. package/src/legacy-runtime/hooks/ThreadContext.ts +27 -1
  194. package/src/legacy-runtime/hooks/ThreadListItemContext.ts +6 -0
  195. package/src/legacy-runtime/runtime-cores/assistant-transport/index.ts +2 -0
  196. package/src/legacy-runtime/runtime-cores/assistant-transport/types.ts +3 -0
  197. package/src/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.tsx +35 -14
  198. package/src/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.tsx +1 -0
  199. package/src/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.tsx +4 -0
  200. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.tsx +4 -2
  201. package/src/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.tsx +7 -1
  202. package/src/legacy-runtime/runtime-cores/external-store/auto-status.tsx +49 -16
  203. package/src/legacy-runtime/runtime-cores/external-store/external-message-converter.tsx +4 -0
  204. package/src/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.tsx +4 -2
  205. package/src/legacy-runtime/runtime-cores/utils/MessageRepository.tsx +1 -1
  206. package/src/model-context/index.ts +9 -0
  207. package/src/model-context/makeAssistantVisible.tsx +1 -1
  208. package/src/model-context/toolbox.tsx +37 -0
  209. package/src/model-context/useAssistantInstructions.tsx +1 -1
  210. package/src/model-context/useAssistantTool.tsx +1 -1
  211. package/src/primitives/message/MessageParts.tsx +3 -2
  212. package/src/primitives/message/MessagePartsGrouped.tsx +3 -2
  213. package/src/tests/setup.ts +2 -8
  214. package/src/utils/tap-store/derived-scopes.ts +185 -0
  215. package/src/utils/tap-store/index.ts +9 -0
  216. package/src/utils/tap-store/tap-api.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToolUI.d.ts","sourceRoot":"","sources":["../../../src/client/types/ToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;AAEzE,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,IAAI,WAAW,CAAC;IAExB,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,4BAA4B,GACnC,WAAW,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"ToolUI.d.ts","sourceRoot":"","sources":["../../../src/client/types/ToolUI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,EAAE,CAAC,CAAC;IACtD,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,MAAM,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,IAAI,WAAW,CAAC;IAExB,SAAS,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,4BAA4B,GACnC,WAAW,CAAC;IAEf,iBAAiB,CAAC,MAAM,EAAE,4BAA4B,GAAG,WAAW,CAAC;IAErE,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,WAAW,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type ToolsState = {};
2
+ export type ToolsApi = {
3
+ getState(): ToolsState;
4
+ };
5
+ export type ToolsMeta = {
6
+ source: "root";
7
+ query: Record<string, never>;
8
+ };
9
+ //# sourceMappingURL=Tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tools.d.ts","sourceRoot":"","sources":["../../../src/client/types/Tools.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,UAAU,GAAG,EAAE,CAAC;AAE5B,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,IAAI,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC9B,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AttachmentByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AttachmentByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AASjE,eAAO,MAAM,gCAAgC,EAAE,EAAE,CAC/C,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAcH,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAChD,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAcH,CAAC"}
1
+ {"version":3,"file":"AttachmentByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/AttachmentByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AASxD,eAAO,MAAM,gCAAgC,EAAE,EAAE,CAC/C,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAYH,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,EAAE,CAChD,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAYH,CAAC"}
@@ -1,38 +1,34 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/AttachmentByIndexProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
6
  useAssistantApi,
8
- createAssistantApiField
7
+ useExtendedAssistantApi
9
8
  } from "../react/AssistantApiContext.js";
9
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
10
10
  import { jsx } from "react/jsx-runtime";
11
11
  var MessageAttachmentByIndexProvider = ({ index, children }) => {
12
- const api = useAssistantApi();
13
- const api2 = useMemo(() => {
14
- return {
15
- attachment: createAssistantApiField({
16
- source: "message",
17
- query: { type: "index", index },
18
- get: () => api.message().attachment({ index })
19
- })
20
- };
21
- }, [api, index]);
22
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
12
+ const baseApi = useAssistantApi();
13
+ const api = useExtendedAssistantApi({
14
+ attachment: DerivedScope({
15
+ source: "message",
16
+ query: { type: "index", index },
17
+ get: () => baseApi.message().attachment({ index })
18
+ })
19
+ });
20
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
23
21
  };
24
22
  var ComposerAttachmentByIndexProvider = ({ index, children }) => {
25
- const api = useAssistantApi();
26
- const api2 = useMemo(() => {
27
- return {
28
- attachment: createAssistantApiField({
29
- source: "composer",
30
- query: { type: "index", index },
31
- get: () => api.composer().attachment({ index })
32
- })
33
- };
34
- }, [api, index]);
35
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
23
+ const baseApi = useAssistantApi();
24
+ const api = useExtendedAssistantApi({
25
+ attachment: DerivedScope({
26
+ source: "composer",
27
+ query: { type: "index", index },
28
+ get: () => baseApi.composer().attachment({ index })
29
+ })
30
+ });
31
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
36
32
  };
37
33
  export {
38
34
  ComposerAttachmentByIndexProvider,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/AttachmentByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\n\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\n\nexport const MessageAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => api.message().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n\nexport const ComposerAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n attachment: createAssistantApiField({\n source: \"composer\",\n query: { type: \"index\", index },\n get: () => api.composer().attachment({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AAEzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBE;AAhBF,IAAM,mCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAC/C,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;AAEO,IAAM,oCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,YAAY,wBAAwB;AAAA,QAClC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,MAChD,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/AttachmentByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\n\nimport {\n AssistantProvider,\n useAssistantApi,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nexport const MessageAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const baseApi = useAssistantApi();\n const api = useExtendedAssistantApi({\n attachment: DerivedScope({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => baseApi.message().attachment({ index }),\n }),\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n\nexport const ComposerAttachmentByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const baseApi = useAssistantApi();\n const api = useExtendedAssistantApi({\n attachment: DerivedScope({\n source: \"composer\",\n query: { type: \"index\", index },\n get: () => baseApi.composer().attachment({ index }),\n }),\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAgBpB;AAdF,IAAM,mCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,UAAU,gBAAgB;AAChC,QAAM,MAAM,wBAAwB;AAAA,IAClC,YAAY,aAAa;AAAA,MACvB,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,MAC9B,KAAK,MAAM,QAAQ,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,IACnD,CAAC;AAAA,EACH,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;AAEO,IAAM,oCAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,UAAU,gBAAgB;AAChC,QAAM,MAAM,wBAAwB;AAAA,IAClC,YAAY,aAAa;AAAA,MACvB,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,MAC9B,KAAK,MAAM,QAAQ,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;AAAA,IACpD,CAAC;AAAA,EACH,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/MessageByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAYjE,eAAO,MAAM,sBAAsB,EAAE,EAAE,CACrC,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAkCH,CAAC"}
1
+ {"version":3,"file":"MessageByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/MessageByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAYxD,eAAO,MAAM,sBAAsB,EAAE,EAAE,CACrC,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAgCH,CAAC"}
@@ -1,45 +1,43 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/MessageByIndexProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
6
  useAssistantApi,
8
- createAssistantApiField
7
+ useExtendedAssistantApi
9
8
  } from "../react/AssistantApiContext.js";
10
9
  import {
11
10
  checkEventScope,
12
11
  normalizeEventSelector
13
12
  } from "../../types/EventTypes.js";
13
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
14
14
  import { jsx } from "react/jsx-runtime";
15
15
  var MessageByIndexProvider = ({ index, children }) => {
16
- const api = useAssistantApi();
17
- const api2 = useMemo(() => {
18
- const getMessage = () => api.thread().message({ index });
19
- return {
20
- message: createAssistantApiField({
21
- source: "thread",
22
- query: { type: "index", index },
23
- get: () => getMessage()
24
- }),
25
- composer: createAssistantApiField({
26
- source: "message",
27
- query: {},
28
- get: () => getMessage().composer
29
- }),
30
- on(selector, callback) {
31
- const { event, scope } = normalizeEventSelector(selector);
32
- if (!checkEventScope("composer", scope, event) && !checkEventScope("message", scope, event))
33
- return api.on(selector, callback);
34
- return api.on({ scope: "thread", event }, (e) => {
35
- if (e.messageId === getMessage().getState().id) {
36
- callback(e);
37
- }
38
- });
39
- }
40
- };
41
- }, [api, index]);
42
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
16
+ const baseApi = useAssistantApi();
17
+ const api = useExtendedAssistantApi({
18
+ message: DerivedScope({
19
+ source: "thread",
20
+ query: { type: "index", index },
21
+ get: () => baseApi.thread().message({ index })
22
+ }),
23
+ composer: DerivedScope({
24
+ source: "message",
25
+ query: {},
26
+ get: () => baseApi.thread().message({ index }).composer
27
+ }),
28
+ on(selector, callback) {
29
+ const getMessage = () => baseApi.thread().message({ index });
30
+ const { event, scope } = normalizeEventSelector(selector);
31
+ if (!checkEventScope("composer", scope, event) && !checkEventScope("message", scope, event))
32
+ return baseApi.on(selector, callback);
33
+ return baseApi.on({ scope: "thread", event }, (e) => {
34
+ if (e.messageId === getMessage().getState().id) {
35
+ callback(e);
36
+ }
37
+ });
38
+ }
39
+ });
40
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
43
41
  };
44
42
  export {
45
43
  MessageByIndexProvider
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/MessageByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\n\nexport const MessageByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n const getMessage = () => api.thread().message({ index });\n return {\n message: createAssistantApiField({\n source: \"thread\",\n query: { type: \"index\", index },\n get: () => getMessage(),\n }),\n composer: createAssistantApiField({\n source: \"message\",\n query: {},\n get: () => getMessage().composer,\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (\n !checkEventScope(\"composer\", scope, event) &&\n !checkEventScope(\"message\", scope, event)\n )\n return api.on(selector, callback);\n\n return api.on({ scope: \"thread\", event }, (e) => {\n if (e.messageId === getMessage().getState().id) {\n callback(e);\n }\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAsCE;AApCF,IAAM,yBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,aAAa,MAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;AACvD,WAAO;AAAA,MACL,SAAS,wBAAwB;AAAA,QAC/B,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,WAAW;AAAA,MACxB,CAAC;AAAA,MACD,UAAU,wBAAwB;AAAA,QAChC,QAAQ;AAAA,QACR,OAAO,CAAC;AAAA,QACR,KAAK,MAAM,WAAW,EAAE;AAAA,MAC1B,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YACE,CAAC,gBAAgB,YAAY,OAAO,KAAK,KACzC,CAAC,gBAAgB,WAAW,OAAO,KAAK;AAExC,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,UAAU,MAAM,GAAG,CAAC,MAAM;AAC/C,cAAI,EAAE,cAAc,WAAW,EAAE,SAAS,EAAE,IAAI;AAC9C,qBAAS,CAAC;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/MessageByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n useAssistantApi,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nexport const MessageByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const baseApi = useAssistantApi();\n const api = useExtendedAssistantApi({\n message: DerivedScope({\n source: \"thread\",\n query: { type: \"index\", index },\n get: () => baseApi.thread().message({ index }),\n }),\n composer: DerivedScope({\n source: \"message\",\n query: {},\n get: () => baseApi.thread().message({ index }).composer,\n }),\n on(selector, callback) {\n const getMessage = () => baseApi.thread().message({ index });\n const { event, scope } = normalizeEventSelector(selector);\n if (\n !checkEventScope(\"composer\", scope, event) &&\n !checkEventScope(\"message\", scope, event)\n )\n return baseApi.on(selector, callback);\n\n return baseApi.on({ scope: \"thread\", event }, (e) => {\n if (e.messageId === getMessage().getState().id) {\n callback(e);\n }\n });\n },\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAoCpB;AAlCF,IAAM,yBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,UAAU,gBAAgB;AAChC,QAAM,MAAM,wBAAwB;AAAA,IAClC,SAAS,aAAa;AAAA,MACpB,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,MAC9B,KAAK,MAAM,QAAQ,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;AAAA,IAC/C,CAAC;AAAA,IACD,UAAU,aAAa;AAAA,MACrB,QAAQ;AAAA,MACR,OAAO,CAAC;AAAA,MACR,KAAK,MAAM,QAAQ,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;AAAA,IACjD,CAAC;AAAA,IACD,GAAG,UAAU,UAAU;AACrB,YAAM,aAAa,MAAM,QAAQ,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;AAC3D,YAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,UACE,CAAC,gBAAgB,YAAY,OAAO,KAAK,KACzC,CAAC,gBAAgB,WAAW,OAAO,KAAK;AAExC,eAAO,QAAQ,GAAG,UAAU,QAAQ;AAEtC,aAAO,QAAQ,GAAG,EAAE,OAAO,UAAU,MAAM,GAAG,CAAC,MAAM;AACnD,YAAI,EAAE,cAAc,WAAW,EAAE,SAAS,EAAE,IAAI;AAC9C,mBAAS,CAAC;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/MessageProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQjE,OAAO,EACL,wBAAwB,EAEzB,MAAM,kCAAkC,CAAC;AAE1C,eAAO,MAAM,eAAe,EAAE,EAAE,CAC9B,iBAAiB,CAAC,wBAAwB,CAAC,CAgB5C,CAAC"}
1
+ {"version":3,"file":"MessageProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/MessageProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAOxD,OAAO,EACL,wBAAwB,EAEzB,MAAM,kCAAkC,CAAC;AAG1C,eAAO,MAAM,eAAe,EAAE,EAAE,CAC9B,iBAAiB,CAAC,wBAAwB,CAAC,CAc5C,CAAC"}
@@ -1,30 +1,28 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/MessageProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
- createAssistantApiField
6
+ useExtendedAssistantApi
8
7
  } from "../react/AssistantApiContext.js";
9
8
  import { useResource } from "@assistant-ui/tap/react";
10
9
  import { asStore } from "../../utils/tap-store/index.js";
11
10
  import {
12
11
  ThreadMessageClient
13
12
  } from "../../client/ThreadMessageClient.js";
13
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
14
14
  import { jsx } from "react/jsx-runtime";
15
15
  var MessageProvider = ({ children, ...props }) => {
16
16
  const store = useResource(asStore(ThreadMessageClient(props)));
17
- const api = useMemo(() => {
18
- return {
19
- message: createAssistantApiField({
20
- source: "root",
21
- query: {},
22
- get: () => store.getState().api
23
- }),
24
- subscribe: store.subscribe,
25
- flushSync: store.flushSync
26
- };
27
- }, [store]);
17
+ const api = useExtendedAssistantApi({
18
+ message: DerivedScope({
19
+ source: "root",
20
+ query: {},
21
+ get: () => store.getState().api
22
+ }),
23
+ subscribe: store.subscribe,
24
+ flushSync: store.flushSync
25
+ });
28
26
  return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
29
27
  };
30
28
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/MessageProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n AssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { asStore } from \"../../utils/tap-store\";\nimport {\n ThreadMessageClientProps,\n ThreadMessageClient,\n} from \"../../client/ThreadMessageClient\";\n\nexport const MessageProvider: FC<\n PropsWithChildren<ThreadMessageClientProps>\n> = ({ children, ...props }) => {\n const store = useResource(asStore(ThreadMessageClient(props)));\n const api = useMemo(() => {\n return {\n message: createAssistantApiField({\n source: \"root\",\n query: {},\n get: () => store.getState().api,\n }),\n subscribe: store.subscribe,\n flushSync: store.flushSync,\n } satisfies Partial<AssistantApi>;\n }, [store]);\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AACxB;AAAA,EAEE;AAAA,OACK;AAkBE;AAhBF,IAAM,kBAET,CAAC,EAAE,UAAU,GAAG,MAAM,MAAM;AAC9B,QAAM,QAAQ,YAAY,QAAQ,oBAAoB,KAAK,CAAC,CAAC;AAC7D,QAAM,MAAM,QAAQ,MAAM;AACxB,WAAO;AAAA,MACL,SAAS,wBAAwB;AAAA,QAC/B,QAAQ;AAAA,QACR,OAAO,CAAC;AAAA,QACR,KAAK,MAAM,MAAM,SAAS,EAAE;AAAA,MAC9B,CAAC;AAAA,MACD,WAAW,MAAM;AAAA,MACjB,WAAW,MAAM;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/MessageProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { asStore } from \"../../utils/tap-store\";\nimport {\n ThreadMessageClientProps,\n ThreadMessageClient,\n} from \"../../client/ThreadMessageClient\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nexport const MessageProvider: FC<\n PropsWithChildren<ThreadMessageClientProps>\n> = ({ children, ...props }) => {\n const store = useResource(asStore(ThreadMessageClient(props)));\n const api = useExtendedAssistantApi({\n message: DerivedScope({\n source: \"root\",\n query: {},\n get: () => store.getState().api,\n }),\n subscribe: store.subscribe,\n flushSync: store.flushSync,\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,mBAAmB;AAC5B,SAAS,eAAe;AACxB;AAAA,EAEE;AAAA,OACK;AACP,SAAS,oBAAoB;AAgBpB;AAdF,IAAM,kBAET,CAAC,EAAE,UAAU,GAAG,MAAM,MAAM;AAC9B,QAAM,QAAQ,YAAY,QAAQ,oBAAoB,KAAK,CAAC,CAAC;AAC7D,QAAM,MAAM,wBAAwB;AAAA,IAClC,SAAS,aAAa;AAAA,MACpB,QAAQ;AAAA,MACR,OAAO,CAAC;AAAA,MACR,KAAK,MAAM,MAAM,SAAS,EAAE;AAAA,IAC9B,CAAC;AAAA,IACD,WAAW,MAAM;AAAA,IACjB,WAAW,MAAM;AAAA,EACnB,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"PartByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/PartByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQjE,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAClC,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAcH,CAAC"}
1
+ {"version":3,"file":"PartByIndexProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/PartByIndexProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAQxD,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAClC,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAYH,CAAC"}
@@ -1,25 +1,23 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/PartByIndexProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
6
  useAssistantApi,
8
- createAssistantApiField
7
+ useExtendedAssistantApi
9
8
  } from "../react/AssistantApiContext.js";
9
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
10
10
  import { jsx } from "react/jsx-runtime";
11
11
  var PartByIndexProvider = ({ index, children }) => {
12
- const api = useAssistantApi();
13
- const api2 = useMemo(() => {
14
- return {
15
- part: createAssistantApiField({
16
- source: "message",
17
- query: { type: "index", index },
18
- get: () => api.message().part({ index })
19
- })
20
- };
21
- }, [api, index]);
22
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
12
+ const baseApi = useAssistantApi();
13
+ const api = useExtendedAssistantApi({
14
+ part: DerivedScope({
15
+ source: "message",
16
+ query: { type: "index", index },
17
+ get: () => baseApi.message().part({ index })
18
+ })
19
+ });
20
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
23
21
  };
24
22
  export {
25
23
  PartByIndexProvider
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/PartByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\n\nexport const PartByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const api = useAssistantApi();\n const api2 = useMemo(() => {\n return {\n part: createAssistantApiField({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => api.message().part({ index }),\n }),\n } satisfies Partial<AssistantApi>;\n }, [api, index]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBE;AAhBF,IAAM,sBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,MAAM,gBAAgB;AAC5B,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,MAAM,wBAAwB;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,QAC9B,KAAK,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;AAAA,MACzC,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,KAAK,KAAK,CAAC;AAEf,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/PartByIndexProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n useAssistantApi,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nexport const PartByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n }>\n> = ({ index, children }) => {\n const baseApi = useAssistantApi();\n const api = useExtendedAssistantApi({\n part: DerivedScope({\n source: \"message\",\n query: { type: \"index\", index },\n get: () => baseApi.message().part({ index }),\n }),\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAgBpB;AAdF,IAAM,sBAIT,CAAC,EAAE,OAAO,SAAS,MAAM;AAC3B,QAAM,UAAU,gBAAgB;AAChC,QAAM,MAAM,wBAAwB;AAAA,IAClC,MAAM,aAAa;AAAA,MACjB,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,SAAS,MAAM;AAAA,MAC9B,KAAK,MAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;AAAA,IAC7C,CAAC;AAAA,EACH,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TextMessagePartProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAqCjE,eAAO,MAAM,uBAAuB,EAAE,EAAE,CACtC,iBAAiB,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAkBH,CAAC"}
1
+ {"version":3,"file":"TextMessagePartProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAqCxD,eAAO,MAAM,uBAAuB,EAAE,EAAE,CACtC,iBAAiB,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAgBH,CAAC"}
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/TextMessagePartProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
- createAssistantApiField
6
+ useExtendedAssistantApi
8
7
  } from "../react/AssistantApiContext.js";
9
8
  import { resource, tapMemo } from "@assistant-ui/tap";
10
9
  import { useResource } from "@assistant-ui/tap/react";
11
10
  import { asStore, tapApi } from "../../utils/tap-store/index.js";
11
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var TextMessagePartClient = resource(
14
14
  ({ text, isRunning }) => {
@@ -35,17 +35,15 @@ var TextMessagePartProvider = ({ text, isRunning = false, children }) => {
35
35
  const store = useResource(
36
36
  asStore(TextMessagePartClient({ text, isRunning }))
37
37
  );
38
- const api = useMemo(() => {
39
- return {
40
- part: createAssistantApiField({
41
- source: "root",
42
- query: {},
43
- get: () => store.getState().api
44
- }),
45
- subscribe: store.subscribe,
46
- flushSync: store.flushSync
47
- };
48
- }, [store]);
38
+ const api = useExtendedAssistantApi({
39
+ part: DerivedScope({
40
+ source: "root",
41
+ query: {},
42
+ get: () => store.getState().api
43
+ }),
44
+ subscribe: store.subscribe,
45
+ flushSync: store.flushSync
46
+ });
49
47
  return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
50
48
  };
51
49
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n AssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n MessagePartClientApi,\n MessagePartClientState,\n} from \"../../client/types/Part\";\nimport { resource, tapMemo } from \"@assistant-ui/tap\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { asStore, tapApi } from \"../../utils/tap-store\";\n\nconst TextMessagePartClient = resource(\n ({ text, isRunning }: { text: string; isRunning: boolean }) => {\n const state = tapMemo<MessagePartClientState>(\n () => ({\n type: \"text\",\n text,\n status: isRunning ? { type: \"running\" } : { type: \"complete\" },\n }),\n [text, isRunning],\n );\n\n return tapApi<MessagePartClientApi>({\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n resumeToolCall: () => {\n throw new Error(\"Not supported\");\n },\n });\n },\n);\n\nexport const TextMessagePartProvider: FC<\n PropsWithChildren<{\n text: string;\n isRunning?: boolean;\n }>\n> = ({ text, isRunning = false, children }) => {\n const store = useResource(\n asStore(TextMessagePartClient({ text, isRunning })),\n );\n const api = useMemo(() => {\n return {\n part: createAssistantApiField({\n source: \"root\",\n query: {},\n get: () => store.getState().api,\n }),\n subscribe: store.subscribe,\n flushSync: store.flushSync,\n } satisfies Partial<AssistantApi>;\n }, [store]);\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAKP,SAAS,UAAU,eAAe;AAClC,SAAS,mBAAmB;AAC5B,SAAS,SAAS,cAAc;AA8CvB;AA5CT,IAAM,wBAAwB;AAAA,EAC5B,CAAC,EAAE,MAAM,UAAU,MAA4C;AAC7D,UAAM,QAAQ;AAAA,MACZ,OAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,QAAQ,YAAY,EAAE,MAAM,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,MAC/D;AAAA,MACA,CAAC,MAAM,SAAS;AAAA,IAClB;AAEA,WAAO,OAA6B;AAAA,MAClC,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AACnB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,MACA,gBAAgB,MAAM;AACpB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,IAAM,0BAKT,CAAC,EAAE,MAAM,YAAY,OAAO,SAAS,MAAM;AAC7C,QAAM,QAAQ;AAAA,IACZ,QAAQ,sBAAsB,EAAE,MAAM,UAAU,CAAC,CAAC;AAAA,EACpD;AACA,QAAM,MAAM,QAAQ,MAAM;AACxB,WAAO;AAAA,MACL,MAAM,wBAAwB;AAAA,QAC5B,QAAQ;AAAA,QACR,OAAO,CAAC;AAAA,QACR,KAAK,MAAM,MAAM,SAAS,EAAE;AAAA,MAC9B,CAAC;AAAA,MACD,WAAW,MAAM;AAAA,MACjB,WAAW,MAAM;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/TextMessagePartProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport {\n MessagePartClientApi,\n MessagePartClientState,\n} from \"../../client/types/Part\";\nimport { resource, tapMemo } from \"@assistant-ui/tap\";\nimport { useResource } from \"@assistant-ui/tap/react\";\nimport { asStore, tapApi } from \"../../utils/tap-store\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nconst TextMessagePartClient = resource(\n ({ text, isRunning }: { text: string; isRunning: boolean }) => {\n const state = tapMemo<MessagePartClientState>(\n () => ({\n type: \"text\",\n text,\n status: isRunning ? { type: \"running\" } : { type: \"complete\" },\n }),\n [text, isRunning],\n );\n\n return tapApi<MessagePartClientApi>({\n getState: () => state,\n addToolResult: () => {\n throw new Error(\"Not supported\");\n },\n resumeToolCall: () => {\n throw new Error(\"Not supported\");\n },\n });\n },\n);\n\nexport const TextMessagePartProvider: FC<\n PropsWithChildren<{\n text: string;\n isRunning?: boolean;\n }>\n> = ({ text, isRunning = false, children }) => {\n const store = useResource(\n asStore(TextMessagePartClient({ text, isRunning })),\n );\n const api = useExtendedAssistantApi({\n part: DerivedScope({\n source: \"root\",\n query: {},\n get: () => store.getState().api,\n }),\n subscribe: store.subscribe,\n flushSync: store.flushSync,\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,SAAS,UAAU,eAAe;AAClC,SAAS,mBAAmB;AAC5B,SAAS,SAAS,cAAc;AAChC,SAAS,oBAAoB;AA4CpB;AA1CT,IAAM,wBAAwB;AAAA,EAC5B,CAAC,EAAE,MAAM,UAAU,MAA4C;AAC7D,UAAM,QAAQ;AAAA,MACZ,OAAO;AAAA,QACL,MAAM;AAAA,QACN;AAAA,QACA,QAAQ,YAAY,EAAE,MAAM,UAAU,IAAI,EAAE,MAAM,WAAW;AAAA,MAC/D;AAAA,MACA,CAAC,MAAM,SAAS;AAAA,IAClB;AAEA,WAAO,OAA6B;AAAA,MAClC,UAAU,MAAM;AAAA,MAChB,eAAe,MAAM;AACnB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,MACA,gBAAgB,MAAM;AACpB,cAAM,IAAI,MAAM,eAAe;AAAA,MACjC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,IAAM,0BAKT,CAAC,EAAE,MAAM,YAAY,OAAO,SAAS,MAAM;AAC7C,QAAM,QAAQ;AAAA,IACZ,QAAQ,sBAAsB,EAAE,MAAM,UAAU,CAAC,CAAC;AAAA,EACpD;AACA,QAAM,MAAM,wBAAwB;AAAA,IAClC,MAAM,aAAa;AAAA,MACjB,QAAQ;AAAA,MACR,OAAO,CAAC;AAAA,MACR,KAAK,MAAM,MAAM,SAAS,EAAE;AAAA,IAC9B,CAAC;AAAA,IACD,WAAW,MAAM;AAAA,IACjB,WAAW,MAAM;AAAA,EACnB,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItemProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAYjE,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAC5C,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CA2BH,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,EAAE,CACzC,iBAAiB,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC,CA0BH,CAAC"}
1
+ {"version":3,"file":"ThreadListItemProvider.d.ts","sourceRoot":"","sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAYxD,eAAO,MAAM,6BAA6B,EAAE,EAAE,CAC5C,iBAAiB,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,CAyBH,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,EAAE,CACzC,iBAAiB,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC,CAwBH,CAAC"}
@@ -1,63 +1,59 @@
1
1
  "use client";
2
2
 
3
3
  // src/context/providers/ThreadListItemProvider.tsx
4
- import { useMemo } from "react";
5
4
  import {
6
5
  AssistantProvider,
7
6
  useAssistantApi,
8
- createAssistantApiField
7
+ useExtendedAssistantApi
9
8
  } from "../react/AssistantApiContext.js";
10
9
  import {
11
10
  checkEventScope,
12
11
  normalizeEventSelector
13
12
  } from "../../types/EventTypes.js";
13
+ import { DerivedScope } from "../../utils/tap-store/derived-scopes.js";
14
14
  import { jsx } from "react/jsx-runtime";
15
15
  var ThreadListItemByIndexProvider = ({ index, archived, children }) => {
16
- const api = useAssistantApi();
17
- const api2 = useMemo(() => {
18
- const getItem = () => api.threads().item({ index, archived });
19
- return {
20
- threadListItem: createAssistantApiField({
21
- source: "threads",
22
- query: { type: "index", index, archived },
23
- get: () => getItem()
24
- }),
25
- on(selector, callback) {
26
- const { event, scope } = normalizeEventSelector(selector);
27
- if (!checkEventScope("thread-list-item", scope, event))
28
- return api.on(selector, callback);
29
- return api.on({ scope: "*", event }, (e) => {
30
- if (e.threadId === getItem().getState().id) {
31
- callback(e);
32
- }
33
- });
34
- }
35
- };
36
- }, [api, index, archived]);
37
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
16
+ const baseApi = useAssistantApi();
17
+ const api = useExtendedAssistantApi({
18
+ threadListItem: DerivedScope({
19
+ source: "threads",
20
+ query: { type: "index", index, archived },
21
+ get: () => baseApi.threads().item({ index, archived })
22
+ }),
23
+ on(selector, callback) {
24
+ const getItem = () => baseApi.threads().item({ index, archived });
25
+ const { event, scope } = normalizeEventSelector(selector);
26
+ if (!checkEventScope("thread-list-item", scope, event))
27
+ return baseApi.on(selector, callback);
28
+ return baseApi.on({ scope: "*", event }, (e) => {
29
+ if (e.threadId === getItem().getState().id) {
30
+ callback(e);
31
+ }
32
+ });
33
+ }
34
+ });
35
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
38
36
  };
39
37
  var ThreadListItemByIdProvider = ({ id, children }) => {
40
- const api = useAssistantApi();
41
- const api2 = useMemo(() => {
42
- const getItem = () => api.threads().item({ id });
43
- return {
44
- threadListItem: createAssistantApiField({
45
- source: "threads",
46
- query: { type: "id", id },
47
- get: () => getItem()
48
- }),
49
- on(selector, callback) {
50
- const { event, scope } = normalizeEventSelector(selector);
51
- if (!checkEventScope("thread-list-item", scope, event))
52
- return api.on(selector, callback);
53
- return api.on({ scope: "*", event }, (e) => {
54
- if (e.threadId !== getItem().getState().id) return;
55
- callback(e);
56
- });
57
- }
58
- };
59
- }, [api, id]);
60
- return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
38
+ const baseApi = useAssistantApi();
39
+ const api = useExtendedAssistantApi({
40
+ threadListItem: DerivedScope({
41
+ source: "threads",
42
+ query: { type: "id", id },
43
+ get: () => baseApi.threads().item({ id })
44
+ }),
45
+ on(selector, callback) {
46
+ const getItem = () => baseApi.threads().item({ id });
47
+ const { event, scope } = normalizeEventSelector(selector);
48
+ if (!checkEventScope("thread-list-item", scope, event))
49
+ return baseApi.on(selector, callback);
50
+ return baseApi.on({ scope: "*", event }, (e) => {
51
+ if (e.threadId !== getItem().getState().id) return;
52
+ callback(e);
53
+ });
54
+ }
55
+ });
56
+ return /* @__PURE__ */ jsx(AssistantProvider, { api, children });
61
57
  };
62
58
  export {
63
59
  ThreadListItemByIdProvider,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantApi,\n AssistantProvider,\n useAssistantApi,\n createAssistantApiField,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\n\nexport const ThreadListItemByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n archived: boolean;\n }>\n> = ({ index, archived, children }) => {\n const api = useAssistantApi();\n\n const api2 = useMemo(() => {\n const getItem = () => api.threads().item({ index, archived });\n return {\n threadListItem: createAssistantApiField({\n source: \"threads\",\n query: { type: \"index\", index, archived },\n get: () => getItem(),\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return api.on(selector, callback);\n\n return api.on({ scope: \"*\", event }, (e) => {\n if (e.threadId === getItem().getState().id) {\n callback(e);\n }\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, index, archived]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n\nexport const ThreadListItemByIdProvider: FC<\n PropsWithChildren<{\n id: string;\n }>\n> = ({ id, children }) => {\n const api = useAssistantApi();\n\n const api2 = useMemo(() => {\n const getItem = () => api.threads().item({ id });\n return {\n threadListItem: createAssistantApiField({\n source: \"threads\",\n query: { type: \"id\", id },\n get: () => getItem(),\n }),\n on(selector, callback) {\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return api.on(selector, callback);\n\n return api.on({ scope: \"*\", event }, (e) => {\n if (e.threadId !== getItem().getState().id) return;\n callback(e);\n });\n },\n } satisfies Partial<AssistantApi>;\n }, [api, id]);\n\n return <AssistantProvider api={api2}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAEA,SAAS,eAAgD;AACzD;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAgCE;AA9BF,IAAM,gCAKT,CAAC,EAAE,OAAO,UAAU,SAAS,MAAM;AACrC,QAAM,MAAM,gBAAgB;AAE5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,UAAU,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC;AAC5D,WAAO;AAAA,MACL,gBAAgB,wBAAwB;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,SAAS,OAAO,SAAS;AAAA,QACxC,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC1C,cAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,IAAI;AAC1C,qBAAS,CAAC;AAAA,UACZ;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,OAAO,QAAQ,CAAC;AAEzB,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;AAEO,IAAM,6BAIT,CAAC,EAAE,IAAI,SAAS,MAAM;AACxB,QAAM,MAAM,gBAAgB;AAE5B,QAAM,OAAO,QAAQ,MAAM;AACzB,UAAM,UAAU,MAAM,IAAI,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AAC/C,WAAO;AAAA,MACL,gBAAgB,wBAAwB;AAAA,QACtC,QAAQ;AAAA,QACR,OAAO,EAAE,MAAM,MAAM,GAAG;AAAA,QACxB,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AAAA,MACD,GAAG,UAAU,UAAU;AACrB,cAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,YAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,iBAAO,IAAI,GAAG,UAAU,QAAQ;AAElC,eAAO,IAAI,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC1C,cAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,GAAI;AAC5C,mBAAS,CAAC;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,EAAE,CAAC;AAEZ,SAAO,oBAAC,qBAAkB,KAAK,MAAO,UAAS;AACjD;","names":[]}
1
+ {"version":3,"sources":["../../../src/context/providers/ThreadListItemProvider.tsx"],"sourcesContent":["\"use client\";\n\nimport { type FC, type PropsWithChildren } from \"react\";\nimport {\n AssistantProvider,\n useAssistantApi,\n useExtendedAssistantApi,\n} from \"../react/AssistantApiContext\";\nimport {\n checkEventScope,\n normalizeEventSelector,\n} from \"../../types/EventTypes\";\nimport { DerivedScope } from \"../../utils/tap-store/derived-scopes\";\n\nexport const ThreadListItemByIndexProvider: FC<\n PropsWithChildren<{\n index: number;\n archived: boolean;\n }>\n> = ({ index, archived, children }) => {\n const baseApi = useAssistantApi();\n\n const api = useExtendedAssistantApi({\n threadListItem: DerivedScope({\n source: \"threads\",\n query: { type: \"index\", index, archived },\n get: () => baseApi.threads().item({ index, archived }),\n }),\n on(selector, callback) {\n const getItem = () => baseApi.threads().item({ index, archived });\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return baseApi.on(selector, callback);\n\n return baseApi.on({ scope: \"*\", event }, (e) => {\n if (e.threadId === getItem().getState().id) {\n callback(e);\n }\n });\n },\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n\nexport const ThreadListItemByIdProvider: FC<\n PropsWithChildren<{\n id: string;\n }>\n> = ({ id, children }) => {\n const baseApi = useAssistantApi();\n\n const api = useExtendedAssistantApi({\n threadListItem: DerivedScope({\n source: \"threads\",\n query: { type: \"id\", id },\n get: () => baseApi.threads().item({ id }),\n }),\n on(selector, callback) {\n const getItem = () => baseApi.threads().item({ id });\n const { event, scope } = normalizeEventSelector(selector);\n if (!checkEventScope(\"thread-list-item\", scope, event))\n return baseApi.on(selector, callback);\n\n return baseApi.on({ scope: \"*\", event }, (e) => {\n if (e.threadId !== getItem().getState().id) return;\n callback(e);\n });\n },\n });\n\n return <AssistantProvider api={api}>{children}</AssistantProvider>;\n};\n"],"mappings":";;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AA8BpB;AA5BF,IAAM,gCAKT,CAAC,EAAE,OAAO,UAAU,SAAS,MAAM;AACrC,QAAM,UAAU,gBAAgB;AAEhC,QAAM,MAAM,wBAAwB;AAAA,IAClC,gBAAgB,aAAa;AAAA,MAC3B,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,SAAS,OAAO,SAAS;AAAA,MACxC,KAAK,MAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC;AAAA,IACvD,CAAC;AAAA,IACD,GAAG,UAAU,UAAU;AACrB,YAAM,UAAU,MAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,CAAC;AAChE,YAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,UAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,eAAO,QAAQ,GAAG,UAAU,QAAQ;AAEtC,aAAO,QAAQ,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC9C,YAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,IAAI;AAC1C,mBAAS,CAAC;AAAA,QACZ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;AAEO,IAAM,6BAIT,CAAC,EAAE,IAAI,SAAS,MAAM;AACxB,QAAM,UAAU,gBAAgB;AAEhC,QAAM,MAAM,wBAAwB;AAAA,IAClC,gBAAgB,aAAa;AAAA,MAC3B,QAAQ;AAAA,MACR,OAAO,EAAE,MAAM,MAAM,GAAG;AAAA,MACxB,KAAK,MAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AAAA,IAC1C,CAAC;AAAA,IACD,GAAG,UAAU,UAAU;AACrB,YAAM,UAAU,MAAM,QAAQ,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC;AACnD,YAAM,EAAE,OAAO,MAAM,IAAI,uBAAuB,QAAQ;AACxD,UAAI,CAAC,gBAAgB,oBAAoB,OAAO,KAAK;AACnD,eAAO,QAAQ,GAAG,UAAU,QAAQ;AAEtC,aAAO,QAAQ,GAAG,EAAE,OAAO,KAAK,MAAM,GAAG,CAAC,MAAM;AAC9C,YAAI,EAAE,aAAa,QAAQ,EAAE,SAAS,EAAE,GAAI;AAC5C,iBAAS,CAAC;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAED,SAAO,oBAAC,qBAAkB,KAAW,UAAS;AAChD;","names":[]}
@@ -7,10 +7,12 @@ import { ThreadClientApi, ThreadClientState } from "../../client/types/Thread";
7
7
  import { ComposerClientApi, ComposerClientState } from "../../client/types/Composer";
8
8
  import { AttachmentClientApi, AttachmentClientState } from "../../client/types/Attachment";
9
9
  import { Unsubscribe } from "@assistant-ui/tap";
10
- import { ModelContextProvider } from "../../model-context";
11
10
  import { AssistantEvent, AssistantEventCallback, AssistantEventSelector } from "../../types/EventTypes";
12
11
  import { ThreadListClientApi, ThreadListClientState } from "../../client/types/ThreadList";
13
12
  import { AssistantClientProps } from "../../client/AssistantClient";
13
+ import { ToolsApi, ToolsMeta } from "../../client/types/Tools";
14
+ import { ModelContextApi, ModelContextMeta } from "../../client/types/ModelContext";
15
+ import { DerivedScopesInput } from "../../utils/tap-store/derived-scopes";
14
16
  export type AssistantState = {
15
17
  readonly threads: ThreadListClientState;
16
18
  readonly toolUIs: ToolUIState;
@@ -21,7 +23,7 @@ export type AssistantState = {
21
23
  readonly part: MessagePartClientState;
22
24
  readonly attachment: AttachmentClientState;
23
25
  };
24
- type AssistantApiField<TApi, TMeta extends {
26
+ export type AssistantApiField<TApi, TMeta extends {
25
27
  source: string | null;
26
28
  query: any;
27
29
  }> = (() => TApi) & (TMeta | {
@@ -82,6 +84,8 @@ type AttachmentMeta = {
82
84
  export type AssistantApi = {
83
85
  threads: AssistantApiField<ThreadListClientApi, ThreadsMeta>;
84
86
  toolUIs: AssistantApiField<ToolUIApi, ToolUIMeta>;
87
+ tools: AssistantApiField<ToolsApi, ToolsMeta>;
88
+ modelContext: AssistantApiField<ModelContextApi, ModelContextMeta>;
85
89
  threadListItem: AssistantApiField<ThreadListItemClientApi, ThreadListItemMeta>;
86
90
  thread: AssistantApiField<ThreadClientApi, ThreadMeta>;
87
91
  composer: AssistantApiField<ComposerClientApi, ComposerMeta>;
@@ -91,7 +95,6 @@ export type AssistantApi = {
91
95
  subscribe(listener: () => void): Unsubscribe;
92
96
  flushSync(): void;
93
97
  on<TEvent extends AssistantEvent>(event: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>): Unsubscribe;
94
- registerModelContextProvider(provider: ModelContextProvider): void;
95
98
  };
96
99
  export declare const createAssistantApiField: <TApi, TMeta extends {
97
100
  source: any;
@@ -102,10 +105,36 @@ export declare const createAssistantApiField: <TApi, TMeta extends {
102
105
  source: null;
103
106
  query: Record<string, never>;
104
107
  })) => AssistantApiField<TApi, TMeta>;
108
+ export declare const useAssistantApiImpl: () => AssistantApi;
109
+ /**
110
+ * Hook to extend the current AssistantApi with additional derived scope fields and special callbacks.
111
+ * This merges the derived fields with the existing API from context.
112
+ * Fields are automatically memoized based on source and query changes.
113
+ * Special callbacks (on, subscribe, flushSync) use the useEffectEvent pattern to always access latest values.
114
+ *
115
+ * @param scopes - Record of field names to DerivedScope resource elements, plus optional special callbacks
116
+ * @returns The merged AssistantApi
117
+ *
118
+ * @example
119
+ * ```tsx
120
+ * const api = useExtendedAssistantApi({
121
+ * message: DerivedScope({
122
+ * source: "root",
123
+ * query: {},
124
+ * get: () => messageApi,
125
+ * }),
126
+ * on: (selector, callback) => {
127
+ * // Custom event filtering logic
128
+ * },
129
+ * });
130
+ * ```
131
+ */
132
+ export declare const useExtendedAssistantApi: (scopes: DerivedScopesInput) => AssistantApi;
105
133
  export declare function useAssistantApi(): AssistantApi;
106
134
  export declare function useAssistantApi(config: AssistantClientProps): AssistantApi;
135
+ export declare const extendApi: (api: AssistantApi, api2: Partial<AssistantApi>) => AssistantApi;
107
136
  export declare const AssistantProvider: FC<PropsWithChildren<{
108
- api: Partial<AssistantApi>;
137
+ api: AssistantApi;
109
138
  devToolsVisible?: boolean;
110
139
  }>>;
111
140
  export {};