@assistant-ui/react-ink 0.0.1 → 0.0.4

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 (244) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/context/AssistantContext.d.ts +1 -7
  4. package/dist/context/AssistantContext.d.ts.map +1 -1
  5. package/dist/context/AssistantContext.js +1 -15
  6. package/dist/context/AssistantContext.js.map +1 -1
  7. package/dist/context/index.d.ts +1 -1
  8. package/dist/context/index.d.ts.map +1 -1
  9. package/dist/context/index.js +1 -1
  10. package/dist/context/index.js.map +1 -1
  11. package/dist/index.d.ts +13 -14
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +13 -16
  14. package/dist/index.js.map +1 -1
  15. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -1
  16. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  17. package/dist/primitives/actionBar/ActionBarCopy.js +1 -1
  18. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  19. package/dist/primitives/actionBar/ActionBarEdit.js +1 -1
  20. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  21. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +1 -1
  22. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  23. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +1 -1
  24. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  25. package/dist/primitives/actionBar/ActionBarReload.js +1 -1
  26. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  27. package/dist/primitives/actionBar/index.d.ts +5 -5
  28. package/dist/primitives/actionBar/index.d.ts.map +1 -1
  29. package/dist/primitives/actionBar/index.js +5 -5
  30. package/dist/primitives/actionBar/index.js.map +1 -1
  31. package/dist/primitives/attachment/index.d.ts +4 -4
  32. package/dist/primitives/attachment/index.d.ts.map +1 -1
  33. package/dist/primitives/attachment/index.js +4 -4
  34. package/dist/primitives/attachment/index.js.map +1 -1
  35. package/dist/primitives/branchPicker/index.d.ts +4 -4
  36. package/dist/primitives/branchPicker/index.d.ts.map +1 -1
  37. package/dist/primitives/branchPicker/index.js +4 -4
  38. package/dist/primitives/branchPicker/index.js.map +1 -1
  39. package/dist/primitives/chainOfThought/index.d.ts +3 -3
  40. package/dist/primitives/chainOfThought/index.d.ts.map +1 -1
  41. package/dist/primitives/chainOfThought/index.js +3 -3
  42. package/dist/primitives/chainOfThought/index.js.map +1 -1
  43. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  44. package/dist/primitives/composer/ComposerAddAttachment.js +3 -5
  45. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  46. package/dist/primitives/composer/ComposerCancel.js +3 -3
  47. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  48. package/dist/primitives/composer/ComposerSend.js +3 -3
  49. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  50. package/dist/primitives/composer/index.d.ts +7 -10
  51. package/dist/primitives/composer/index.d.ts.map +1 -1
  52. package/dist/primitives/composer/index.js +7 -10
  53. package/dist/primitives/composer/index.js.map +1 -1
  54. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  55. package/dist/primitives/message/MessageContent.js +9 -3
  56. package/dist/primitives/message/MessageContent.js.map +1 -1
  57. package/dist/primitives/message/index.d.ts +5 -5
  58. package/dist/primitives/message/index.d.ts.map +1 -1
  59. package/dist/primitives/message/index.js +5 -5
  60. package/dist/primitives/message/index.js.map +1 -1
  61. package/dist/primitives/suggestion/index.d.ts +3 -3
  62. package/dist/primitives/suggestion/index.d.ts.map +1 -1
  63. package/dist/primitives/suggestion/index.js +3 -3
  64. package/dist/primitives/suggestion/index.js.map +1 -1
  65. package/dist/primitives/thread/ThreadEmpty.js +1 -1
  66. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  67. package/dist/primitives/thread/ThreadMessages.d.ts +23 -7
  68. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  69. package/dist/primitives/thread/ThreadMessages.js +67 -13
  70. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  71. package/dist/primitives/thread/index.d.ts +7 -7
  72. package/dist/primitives/thread/index.d.ts.map +1 -1
  73. package/dist/primitives/thread/index.js +7 -7
  74. package/dist/primitives/thread/index.js.map +1 -1
  75. package/dist/primitives/threadList/index.d.ts +3 -3
  76. package/dist/primitives/threadList/index.d.ts.map +1 -1
  77. package/dist/primitives/threadList/index.js +3 -3
  78. package/dist/primitives/threadList/index.js.map +1 -1
  79. package/dist/primitives/threadListItem/index.d.ts +6 -6
  80. package/dist/primitives/threadListItem/index.d.ts.map +1 -1
  81. package/dist/primitives/threadListItem/index.js +6 -6
  82. package/dist/primitives/threadListItem/index.js.map +1 -1
  83. package/dist/primitives/toolCall/ToolFallback.d.ts +33 -0
  84. package/dist/primitives/toolCall/ToolFallback.d.ts.map +1 -0
  85. package/dist/primitives/toolCall/ToolFallback.js +103 -0
  86. package/dist/primitives/toolCall/ToolFallback.js.map +1 -0
  87. package/dist/primitives/toolCall/index.d.ts +2 -0
  88. package/dist/primitives/toolCall/index.d.ts.map +1 -0
  89. package/dist/primitives/toolCall/index.js +2 -0
  90. package/dist/primitives/toolCall/index.js.map +1 -0
  91. package/dist/runtimes/RemoteThreadListHookInstanceManager.d.ts +1 -95
  92. package/dist/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -1
  93. package/dist/runtimes/RemoteThreadListHookInstanceManager.js +1 -109
  94. package/dist/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -1
  95. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +1 -112
  96. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  97. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.js +1 -439
  98. package/dist/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  99. package/dist/runtimes/useLocalRuntime.d.ts +1 -17
  100. package/dist/runtimes/useLocalRuntime.d.ts.map +1 -1
  101. package/dist/runtimes/useLocalRuntime.js +1 -61
  102. package/dist/runtimes/useLocalRuntime.js.map +1 -1
  103. package/dist/runtimes/useRemoteThreadListRuntime.d.ts +1 -3
  104. package/dist/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -1
  105. package/dist/runtimes/useRemoteThreadListRuntime.js +1 -46
  106. package/dist/runtimes/useRemoteThreadListRuntime.js.map +1 -1
  107. package/package.json +13 -11
  108. package/src/context/AssistantContext.tsx +4 -31
  109. package/src/context/index.ts +4 -1
  110. package/src/index.ts +13 -39
  111. package/src/primitives/actionBar/ActionBarCopy.tsx +1 -1
  112. package/src/primitives/actionBar/ActionBarEdit.tsx +1 -1
  113. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +1 -1
  114. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +1 -1
  115. package/src/primitives/actionBar/ActionBarReload.tsx +1 -1
  116. package/src/primitives/actionBar/index.ts +16 -7
  117. package/src/primitives/attachment/index.ts +14 -5
  118. package/src/primitives/branchPicker/index.ts +8 -8
  119. package/src/primitives/chainOfThought/index.ts +5 -5
  120. package/src/primitives/composer/ComposerAddAttachment.tsx +3 -5
  121. package/src/primitives/composer/ComposerCancel.tsx +3 -3
  122. package/src/primitives/composer/ComposerSend.tsx +3 -3
  123. package/src/primitives/composer/index.ts +19 -19
  124. package/src/primitives/message/MessageContent.test.tsx +83 -0
  125. package/src/primitives/message/MessageContent.tsx +21 -15
  126. package/src/primitives/message/index.ts +13 -7
  127. package/src/primitives/suggestion/index.ts +6 -6
  128. package/src/primitives/thread/ThreadEmpty.tsx +1 -1
  129. package/src/primitives/thread/ThreadMessages.tsx +122 -27
  130. package/src/primitives/thread/index.ts +17 -11
  131. package/src/primitives/threadList/index.ts +12 -3
  132. package/src/primitives/threadListItem/index.ts +11 -11
  133. package/src/primitives/toolCall/ToolFallback.test.tsx +40 -0
  134. package/src/primitives/toolCall/ToolFallback.tsx +227 -0
  135. package/src/primitives/toolCall/index.ts +5 -0
  136. package/src/runtimes/RemoteThreadListHookInstanceManager.tsx +1 -180
  137. package/src/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +1 -538
  138. package/src/runtimes/useLocalRuntime.ts +4 -105
  139. package/src/runtimes/useRemoteThreadListRuntime.ts +1 -80
  140. package/dist/adapters/LocalStorageThreadListAdapter.d.ts +0 -15
  141. package/dist/adapters/LocalStorageThreadListAdapter.d.ts.map +0 -1
  142. package/dist/adapters/LocalStorageThreadListAdapter.js +0 -154
  143. package/dist/adapters/LocalStorageThreadListAdapter.js.map +0 -1
  144. package/dist/adapters/TitleGenerationAdapter.d.ts +0 -6
  145. package/dist/adapters/TitleGenerationAdapter.d.ts.map +0 -1
  146. package/dist/adapters/TitleGenerationAdapter.js +0 -15
  147. package/dist/adapters/TitleGenerationAdapter.js.map +0 -1
  148. package/dist/adapters/index.d.ts +0 -3
  149. package/dist/adapters/index.d.ts.map +0 -1
  150. package/dist/adapters/index.js +0 -3
  151. package/dist/adapters/index.js.map +0 -1
  152. package/dist/primitive-hooks/index.d.ts +0 -15
  153. package/dist/primitive-hooks/index.d.ts.map +0 -1
  154. package/dist/primitive-hooks/index.js +0 -15
  155. package/dist/primitive-hooks/index.js.map +0 -1
  156. package/dist/primitive-hooks/useActionBarCopy.d.ts +0 -10
  157. package/dist/primitive-hooks/useActionBarCopy.d.ts.map +0 -1
  158. package/dist/primitive-hooks/useActionBarCopy.js +0 -26
  159. package/dist/primitive-hooks/useActionBarCopy.js.map +0 -1
  160. package/dist/primitive-hooks/useActionBarEdit.d.ts +0 -5
  161. package/dist/primitive-hooks/useActionBarEdit.d.ts.map +0 -1
  162. package/dist/primitive-hooks/useActionBarEdit.js +0 -11
  163. package/dist/primitive-hooks/useActionBarEdit.js.map +0 -1
  164. package/dist/primitive-hooks/useActionBarFeedback.d.ts +0 -9
  165. package/dist/primitive-hooks/useActionBarFeedback.d.ts.map +0 -1
  166. package/dist/primitive-hooks/useActionBarFeedback.js +0 -19
  167. package/dist/primitive-hooks/useActionBarFeedback.js.map +0 -1
  168. package/dist/primitive-hooks/useActionBarReload.d.ts +0 -5
  169. package/dist/primitive-hooks/useActionBarReload.d.ts.map +0 -1
  170. package/dist/primitive-hooks/useActionBarReload.js +0 -13
  171. package/dist/primitive-hooks/useActionBarReload.js.map +0 -1
  172. package/dist/primitive-hooks/useComposerAddAttachment.d.ts +0 -5
  173. package/dist/primitive-hooks/useComposerAddAttachment.d.ts.map +0 -1
  174. package/dist/primitive-hooks/useComposerAddAttachment.js +0 -10
  175. package/dist/primitive-hooks/useComposerAddAttachment.js.map +0 -1
  176. package/dist/primitive-hooks/useComposerCancel.d.ts +0 -5
  177. package/dist/primitive-hooks/useComposerCancel.d.ts.map +0 -1
  178. package/dist/primitive-hooks/useComposerCancel.js +0 -11
  179. package/dist/primitive-hooks/useComposerCancel.js.map +0 -1
  180. package/dist/primitive-hooks/useComposerSend.d.ts +0 -5
  181. package/dist/primitive-hooks/useComposerSend.d.ts.map +0 -1
  182. package/dist/primitive-hooks/useComposerSend.js +0 -11
  183. package/dist/primitive-hooks/useComposerSend.js.map +0 -1
  184. package/dist/primitive-hooks/useEditComposerCancel.d.ts +0 -4
  185. package/dist/primitive-hooks/useEditComposerCancel.d.ts.map +0 -1
  186. package/dist/primitive-hooks/useEditComposerCancel.js +0 -10
  187. package/dist/primitive-hooks/useEditComposerCancel.js.map +0 -1
  188. package/dist/primitive-hooks/useEditComposerSend.d.ts +0 -5
  189. package/dist/primitive-hooks/useEditComposerSend.d.ts.map +0 -1
  190. package/dist/primitive-hooks/useEditComposerSend.js +0 -11
  191. package/dist/primitive-hooks/useEditComposerSend.js.map +0 -1
  192. package/dist/primitive-hooks/useMessageBranching.d.ts +0 -7
  193. package/dist/primitive-hooks/useMessageBranching.d.ts.map +0 -1
  194. package/dist/primitive-hooks/useMessageBranching.js +0 -15
  195. package/dist/primitive-hooks/useMessageBranching.js.map +0 -1
  196. package/dist/primitive-hooks/useMessageReload.d.ts +0 -5
  197. package/dist/primitive-hooks/useMessageReload.d.ts.map +0 -1
  198. package/dist/primitive-hooks/useMessageReload.js +0 -11
  199. package/dist/primitive-hooks/useMessageReload.js.map +0 -1
  200. package/dist/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
  201. package/dist/primitive-hooks/useThreadIsEmpty.d.ts.map +0 -1
  202. package/dist/primitive-hooks/useThreadIsEmpty.js +0 -5
  203. package/dist/primitive-hooks/useThreadIsEmpty.js.map +0 -1
  204. package/dist/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  205. package/dist/primitive-hooks/useThreadIsRunning.d.ts.map +0 -1
  206. package/dist/primitive-hooks/useThreadIsRunning.js +0 -5
  207. package/dist/primitive-hooks/useThreadIsRunning.js.map +0 -1
  208. package/dist/primitive-hooks/useThreadMessages.d.ts +0 -3
  209. package/dist/primitive-hooks/useThreadMessages.d.ts.map +0 -1
  210. package/dist/primitive-hooks/useThreadMessages.js +0 -5
  211. package/dist/primitive-hooks/useThreadMessages.js.map +0 -1
  212. package/dist/primitives/composer/EditComposerCancel.d.ts +0 -7
  213. package/dist/primitives/composer/EditComposerCancel.d.ts.map +0 -1
  214. package/dist/primitives/composer/EditComposerCancel.js +0 -8
  215. package/dist/primitives/composer/EditComposerCancel.js.map +0 -1
  216. package/dist/primitives/composer/EditComposerInput.d.ts +0 -10
  217. package/dist/primitives/composer/EditComposerInput.d.ts.map +0 -1
  218. package/dist/primitives/composer/EditComposerInput.js +0 -19
  219. package/dist/primitives/composer/EditComposerInput.js.map +0 -1
  220. package/dist/primitives/composer/EditComposerSend.d.ts +0 -7
  221. package/dist/primitives/composer/EditComposerSend.d.ts.map +0 -1
  222. package/dist/primitives/composer/EditComposerSend.js +0 -8
  223. package/dist/primitives/composer/EditComposerSend.js.map +0 -1
  224. package/src/adapters/LocalStorageThreadListAdapter.tsx +0 -227
  225. package/src/adapters/TitleGenerationAdapter.ts +0 -20
  226. package/src/adapters/index.ts +0 -5
  227. package/src/primitive-hooks/index.ts +0 -20
  228. package/src/primitive-hooks/useActionBarCopy.ts +0 -38
  229. package/src/primitive-hooks/useActionBarEdit.ts +0 -13
  230. package/src/primitive-hooks/useActionBarFeedback.ts +0 -28
  231. package/src/primitive-hooks/useActionBarReload.ts +0 -18
  232. package/src/primitive-hooks/useComposerAddAttachment.ts +0 -16
  233. package/src/primitive-hooks/useComposerCancel.ts +0 -13
  234. package/src/primitive-hooks/useComposerSend.ts +0 -13
  235. package/src/primitive-hooks/useEditComposerCancel.ts +0 -12
  236. package/src/primitive-hooks/useEditComposerSend.ts +0 -13
  237. package/src/primitive-hooks/useMessageBranching.ts +0 -18
  238. package/src/primitive-hooks/useMessageReload.ts +0 -13
  239. package/src/primitive-hooks/useThreadIsEmpty.ts +0 -5
  240. package/src/primitive-hooks/useThreadIsRunning.ts +0 -5
  241. package/src/primitive-hooks/useThreadMessages.ts +0 -6
  242. package/src/primitives/composer/EditComposerCancel.tsx +0 -20
  243. package/src/primitives/composer/EditComposerInput.tsx +0 -40
  244. package/src/primitives/composer/EditComposerSend.tsx +0 -25
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerAddAttachment.js","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerAddAttachment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,IAA6B,EAAE,EAAE;QAChC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useComposerCancel: () => {
2
- cancel: () => void;
3
- canCancel: boolean;
4
- };
5
- //# sourceMappingURL=useComposerCancel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerCancel.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerCancel.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;CAS7B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useComposerCancel = () => {
4
- const aui = useAui();
5
- const canCancel = useAuiState((s) => s.thread.isRunning);
6
- const cancel = useCallback(() => {
7
- aui.threads().thread("main").cancelRun();
8
- }, [aui]);
9
- return { cancel, canCancel };
10
- };
11
- //# sourceMappingURL=useComposerCancel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerCancel.js","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerCancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3C,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useComposerSend: () => {
2
- send: () => void;
3
- canSend: boolean;
4
- };
5
- //# sourceMappingURL=useComposerSend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerSend.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerSend.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;;;CAS3B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useComposerSend = () => {
4
- const aui = useAui();
5
- const canSend = useAuiState((s) => !s.composer.isEmpty);
6
- const send = useCallback(() => {
7
- aui.composer().send();
8
- }, [aui]);
9
- return { send, canSend };
10
- };
11
- //# sourceMappingURL=useComposerSend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerSend.js","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const useEditComposerCancel: () => {
2
- cancel: () => void;
3
- };
4
- //# sourceMappingURL=useEditComposerCancel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditComposerCancel.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useEditComposerCancel.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;CAQjC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui } from "@assistant-ui/store";
3
- export const useEditComposerCancel = () => {
4
- const aui = useAui();
5
- const cancel = useCallback(() => {
6
- aui.composer().cancel();
7
- }, [aui]);
8
- return { cancel };
9
- };
10
- //# sourceMappingURL=useEditComposerCancel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditComposerCancel.js","sourceRoot":"","sources":["../../src/primitive-hooks/useEditComposerCancel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,EAAE;IACxC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IAErB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useEditComposerSend: () => {
2
- send: () => void;
3
- disabled: boolean;
4
- };
5
- //# sourceMappingURL=useEditComposerSend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditComposerSend.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useEditComposerSend.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;;;CAS/B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useEditComposerSend = () => {
4
- const aui = useAui();
5
- const disabled = useAuiState((s) => s.composer.isEmpty);
6
- const send = useCallback(() => {
7
- aui.composer().send();
8
- }, [aui]);
9
- return { send, disabled };
10
- };
11
- //# sourceMappingURL=useEditComposerSend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEditComposerSend.js","sourceRoot":"","sources":["../../src/primitive-hooks/useEditComposerSend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- export declare const useMessageBranching: () => {
2
- branchNumber: number;
3
- branchCount: number;
4
- goToPrev: () => void;
5
- goToNext: () => void;
6
- };
7
- //# sourceMappingURL=useMessageBranching.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageBranching.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useMessageBranching.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB;;;;;CAc/B,CAAC"}
@@ -1,15 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useMessageBranching = () => {
4
- const aui = useAui();
5
- const branchNumber = useAuiState((s) => s.message.branchNumber);
6
- const branchCount = useAuiState((s) => s.message.branchCount);
7
- const goToPrev = useCallback(() => {
8
- aui.message().switchToBranch({ position: "previous" });
9
- }, [aui]);
10
- const goToNext = useCallback(() => {
11
- aui.message().switchToBranch({ position: "next" });
12
- }, [aui]);
13
- return { branchNumber, branchCount, goToPrev, goToNext };
14
- };
15
- //# sourceMappingURL=useMessageBranching.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageBranching.js","sourceRoot":"","sources":["../../src/primitive-hooks/useMessageBranching.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;QAChC,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC3D,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useMessageReload: () => {
2
- reload: () => void;
3
- canReload: boolean;
4
- };
5
- //# sourceMappingURL=useMessageReload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageReload.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useMessageReload.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB;;;CAS5B,CAAC"}
@@ -1,11 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useMessageReload = () => {
4
- const aui = useAui();
5
- const canReload = useAuiState((s) => s.message.role === "assistant");
6
- const reload = useCallback(() => {
7
- aui.message().reload();
8
- }, [aui]);
9
- return { reload, canReload };
10
- };
11
- //# sourceMappingURL=useMessageReload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useMessageReload.js","sourceRoot":"","sources":["../../src/primitive-hooks/useMessageReload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const useThreadIsEmpty: () => boolean;
2
- //# sourceMappingURL=useThreadIsEmpty.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadIsEmpty.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadIsEmpty.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,QAAO,OAEnC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
- export const useThreadIsEmpty = () => {
3
- return useAuiState((s) => s.thread.isEmpty);
4
- };
5
- //# sourceMappingURL=useThreadIsEmpty.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadIsEmpty.js","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadIsEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAY,EAAE;IAC5C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const useThreadIsRunning: () => boolean;
2
- //# sourceMappingURL=useThreadIsRunning.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadIsRunning.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadIsRunning.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,QAAO,OAErC,CAAC"}
@@ -1,5 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
- export const useThreadIsRunning = () => {
3
- return useAuiState((s) => s.thread.isRunning);
4
- };
5
- //# sourceMappingURL=useThreadIsRunning.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadIsRunning.js","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadIsRunning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,EAAE;IAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { MessageState } from "@assistant-ui/core/store";
2
- export declare const useThreadMessages: () => readonly MessageState[];
3
- //# sourceMappingURL=useThreadMessages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadMessages.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadMessages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,eAAO,MAAM,iBAAiB,QAAO,SAAS,YAAY,EAEzD,CAAC"}
@@ -1,5 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
- export const useThreadMessages = () => {
3
- return useAuiState((s) => s.thread.messages);
4
- };
5
- //# sourceMappingURL=useThreadMessages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThreadMessages.js","sourceRoot":"","sources":["../../src/primitive-hooks/useThreadMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAA4B,EAAE;IAC7D,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { type PressableProps } from "../internal/Pressable.js";
3
- export type EditComposerCancelProps = Omit<PressableProps, "onPress"> & {
4
- children: ReactNode;
5
- };
6
- export declare const EditComposerCancel: ({ children, ...pressableProps }: EditComposerCancelProps) => import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=EditComposerCancel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerCancel.d.ts","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerCancel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAa,KAAK,cAAc,EAAE,iCAA8B;AAEvE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IACtE,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,iCAGhC,uBAAuB,4CAQzB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEditComposerCancel } from "../../primitive-hooks/useEditComposerCancel.js";
3
- import { Pressable } from "../internal/Pressable.js";
4
- export const EditComposerCancel = ({ children, ...pressableProps }) => {
5
- const { cancel } = useEditComposerCancel();
6
- return (_jsx(Pressable, { onPress: cancel, ...pressableProps, children: children }));
7
- };
8
- //# sourceMappingURL=EditComposerCancel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerCancel.js","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerCancel.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAE,uDAAoD;AACpF,OAAO,EAAE,SAAS,EAAuB,iCAA8B;AAMvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,QAAQ,EACR,GAAG,cAAc,EACO,EAAE,EAAE;IAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAE3C,OAAO,CACL,KAAC,SAAS,IAAC,OAAO,EAAE,MAAM,KAAM,cAAc,YAC3C,QAAQ,GACC,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { ComponentProps } from "react";
2
- import { Box } from "ink";
3
- export type EditComposerInputProps = ComponentProps<typeof Box> & {
4
- /** Placeholder text shown when the input is empty. */
5
- placeholder?: string | undefined;
6
- /** Whether this input should receive focus automatically. @default true */
7
- autoFocus?: boolean | undefined;
8
- };
9
- export declare const EditComposerInput: ({ placeholder, autoFocus, ...boxProps }: EditComposerInputProps) => import("react/jsx-runtime").JSX.Element;
10
- //# sourceMappingURL=EditComposerInput.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerInput.d.ts","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAA4B,MAAM,KAAK,CAAC;AAGpD,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IAChE,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,yCAI/B,sBAAsB,4CAwBxB,CAAC"}
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, Text, useFocus, useInput } from "ink";
3
- import { useAui, useAuiState } from "@assistant-ui/store";
4
- export const EditComposerInput = ({ placeholder = "", autoFocus = true, ...boxProps }) => {
5
- const aui = useAui();
6
- const text = useAuiState((s) => s.composer.text);
7
- const { isFocused } = useFocus({ autoFocus });
8
- useInput((input, key) => {
9
- if (key.backspace || key.delete) {
10
- aui.composer().setText(text.slice(0, -1));
11
- return;
12
- }
13
- if (input && !key.ctrl && !key.meta && !key.return) {
14
- aui.composer().setText(text + input);
15
- }
16
- }, { isActive: isFocused });
17
- return (_jsxs(Box, { ...boxProps, children: [_jsx(Text, { dimColor: !text && !!placeholder, children: text || placeholder }), isFocused && _jsx(Text, { children: "\u258B" })] }));
18
- };
19
- //# sourceMappingURL=EditComposerInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerInput.js","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerInput.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAS1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,IAAI,EAChB,GAAG,QAAQ,EACY,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAE9C,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACnD,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,SAAS,EAAE,CACxB,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,OAAK,QAAQ,aACf,KAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,YAAG,IAAI,IAAI,WAAW,GAAQ,EACnE,SAAS,IAAI,KAAC,IAAI,yBAAS,IACxB,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { type PressableProps } from "../internal/Pressable.js";
3
- export type EditComposerSendProps = Omit<PressableProps, "onPress"> & {
4
- children: ReactNode;
5
- };
6
- export declare const EditComposerSend: ({ children, disabled: disabledProp, ...pressableProps }: EditComposerSendProps) => import("react/jsx-runtime").JSX.Element;
7
- //# sourceMappingURL=EditComposerSend.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerSend.d.ts","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerSend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAa,KAAK,cAAc,EAAE,iCAA8B;AAEvE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IACpE,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,yDAI9B,qBAAqB,4CAYvB,CAAC"}
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEditComposerSend } from "../../primitive-hooks/useEditComposerSend.js";
3
- import { Pressable } from "../internal/Pressable.js";
4
- export const EditComposerSend = ({ children, disabled: disabledProp, ...pressableProps }) => {
5
- const { send, disabled } = useEditComposerSend();
6
- return (_jsx(Pressable, { onPress: send, disabled: disabledProp ?? disabled, ...pressableProps, children: children }));
7
- };
8
- //# sourceMappingURL=EditComposerSend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditComposerSend.js","sourceRoot":"","sources":["../../../src/primitives/composer/EditComposerSend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,qDAAkD;AAChF,OAAO,EAAE,SAAS,EAAuB,iCAA8B;AAMvE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,QAAQ,EAAE,YAAY,EACtB,GAAG,cAAc,EACK,EAAE,EAAE;IAC1B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAEjD,OAAO,CACL,KAAC,SAAS,IACR,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,YAAY,IAAI,QAAQ,KAC9B,cAAc,YAEjB,QAAQ,GACC,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -1,227 +0,0 @@
1
- import { type AssistantStream, createAssistantStream } from "assistant-stream";
2
- import { FC, PropsWithChildren, useMemo } from "react";
3
- import { useAui } from "@assistant-ui/store";
4
- import type {
5
- RemoteThreadInitializeResponse,
6
- RemoteThreadListAdapter,
7
- RemoteThreadListResponse,
8
- RemoteThreadMetadata,
9
- ThreadHistoryAdapter,
10
- ThreadMessage,
11
- } from "@assistant-ui/core";
12
- import type {
13
- ExportedMessageRepository,
14
- ExportedMessageRepositoryItem,
15
- } from "@assistant-ui/core/internal";
16
- import { RuntimeAdapterProvider } from "../context/providers/RuntimeAdapterProvider";
17
- import type { TitleGenerationAdapter } from "./TitleGenerationAdapter";
18
-
19
- type AsyncStorageLike = {
20
- getItem(key: string): Promise<string | null>;
21
- setItem(key: string, value: string): Promise<void>;
22
- removeItem(key: string): Promise<void>;
23
- };
24
-
25
- type LocalStorageAdapterOptions = {
26
- storage: AsyncStorageLike;
27
- prefix?: string | undefined;
28
- titleGenerator?: TitleGenerationAdapter | undefined;
29
- };
30
-
31
- type StoredThreadMetadata = {
32
- remoteId: string;
33
- externalId?: string;
34
- status: "regular" | "archived";
35
- title?: string;
36
- };
37
-
38
- class AsyncStorageHistoryAdapter implements ThreadHistoryAdapter {
39
- constructor(
40
- private storage: AsyncStorageLike,
41
- private aui: ReturnType<typeof useAui>,
42
- private prefix: string,
43
- ) {}
44
-
45
- private _messagesKey(remoteId: string) {
46
- return `${this.prefix}messages:${remoteId}`;
47
- }
48
-
49
- async load(): Promise<ExportedMessageRepository> {
50
- const remoteId = this.aui.threadListItem().getState().remoteId;
51
- if (!remoteId) return { messages: [] };
52
-
53
- const raw = await this.storage.getItem(this._messagesKey(remoteId));
54
- if (!raw) return { messages: [] };
55
- return JSON.parse(raw) as ExportedMessageRepository;
56
- }
57
-
58
- async append(item: ExportedMessageRepositoryItem): Promise<void> {
59
- const { remoteId } = await this.aui.threadListItem().initialize();
60
-
61
- const key = this._messagesKey(remoteId);
62
- const raw = await this.storage.getItem(key);
63
- const repo: ExportedMessageRepository = raw
64
- ? (JSON.parse(raw) as ExportedMessageRepository)
65
- : { messages: [] };
66
-
67
- const idx = repo.messages.findIndex(
68
- (m) => m.message.id === item.message.id,
69
- );
70
- if (idx >= 0) {
71
- repo.messages[idx] = item;
72
- } else {
73
- repo.messages.push(item);
74
- }
75
- repo.headId = item.message.id;
76
-
77
- await this.storage.setItem(key, JSON.stringify(repo));
78
- }
79
- }
80
-
81
- const createHistoryProvider = (
82
- storage: AsyncStorageLike,
83
- prefix: string,
84
- ): FC<PropsWithChildren> => {
85
- const Provider: FC<PropsWithChildren> = ({ children }) => {
86
- const aui = useAui();
87
- const history = useMemo(
88
- () => new AsyncStorageHistoryAdapter(storage, aui, prefix),
89
- [aui],
90
- );
91
- const adapters = useMemo(() => ({ history }), [history]);
92
-
93
- return (
94
- <RuntimeAdapterProvider adapters={adapters}>
95
- {children}
96
- </RuntimeAdapterProvider>
97
- );
98
- };
99
- return Provider;
100
- };
101
-
102
- export const createLocalStorageAdapter = (
103
- options: LocalStorageAdapterOptions,
104
- ): RemoteThreadListAdapter => {
105
- const { storage, prefix = "@assistant-ui:", titleGenerator } = options;
106
-
107
- const threadsKey = `${prefix}threads`;
108
- const messagesKey = (threadId: string) => `${prefix}messages:${threadId}`;
109
-
110
- const loadThreadMetadata = async (): Promise<StoredThreadMetadata[]> => {
111
- const raw = await storage.getItem(threadsKey);
112
- return raw ? (JSON.parse(raw) as StoredThreadMetadata[]) : [];
113
- };
114
-
115
- const saveThreadMetadata = async (
116
- threads: StoredThreadMetadata[],
117
- ): Promise<void> => {
118
- await storage.setItem(threadsKey, JSON.stringify(threads));
119
- };
120
-
121
- const adapter: RemoteThreadListAdapter = {
122
- unstable_Provider: createHistoryProvider(storage, prefix),
123
-
124
- async list(): Promise<RemoteThreadListResponse> {
125
- const threads = await loadThreadMetadata();
126
- return {
127
- threads: threads.map((t) => ({
128
- remoteId: t.remoteId,
129
- externalId: t.externalId,
130
- status: t.status,
131
- title: t.title,
132
- })),
133
- };
134
- },
135
-
136
- async initialize(
137
- threadId: string,
138
- ): Promise<RemoteThreadInitializeResponse> {
139
- const remoteId = threadId;
140
- const threads = await loadThreadMetadata();
141
-
142
- // Only add if not already present
143
- if (!threads.some((t) => t.remoteId === remoteId)) {
144
- threads.unshift({
145
- remoteId,
146
- status: "regular",
147
- });
148
- await saveThreadMetadata(threads);
149
- }
150
-
151
- return { remoteId, externalId: undefined };
152
- },
153
-
154
- async rename(remoteId: string, newTitle: string): Promise<void> {
155
- const threads = await loadThreadMetadata();
156
- const thread = threads.find((t) => t.remoteId === remoteId);
157
- if (thread) {
158
- thread.title = newTitle;
159
- await saveThreadMetadata(threads);
160
- }
161
- },
162
-
163
- async archive(remoteId: string): Promise<void> {
164
- const threads = await loadThreadMetadata();
165
- const thread = threads.find((t) => t.remoteId === remoteId);
166
- if (thread) {
167
- thread.status = "archived";
168
- await saveThreadMetadata(threads);
169
- }
170
- },
171
-
172
- async unarchive(remoteId: string): Promise<void> {
173
- const threads = await loadThreadMetadata();
174
- const thread = threads.find((t) => t.remoteId === remoteId);
175
- if (thread) {
176
- thread.status = "regular";
177
- await saveThreadMetadata(threads);
178
- }
179
- },
180
-
181
- async delete(remoteId: string): Promise<void> {
182
- const threads = await loadThreadMetadata();
183
- const filtered = threads.filter((t) => t.remoteId !== remoteId);
184
- await saveThreadMetadata(filtered);
185
- await storage.removeItem(messagesKey(remoteId));
186
- },
187
-
188
- async fetch(threadId: string): Promise<RemoteThreadMetadata> {
189
- const threads = await loadThreadMetadata();
190
- const thread = threads.find((t) => t.remoteId === threadId);
191
- if (!thread) throw new Error("Thread not found");
192
- return {
193
- remoteId: thread.remoteId,
194
- externalId: thread.externalId,
195
- status: thread.status,
196
- title: thread.title,
197
- };
198
- },
199
-
200
- async generateTitle(
201
- remoteId: string,
202
- messages: readonly ThreadMessage[],
203
- ): Promise<AssistantStream> {
204
- if (titleGenerator) {
205
- const title = await titleGenerator.generateTitle(messages);
206
-
207
- // Update the stored title
208
- const threads = await loadThreadMetadata();
209
- const thread = threads.find((t) => t.remoteId === remoteId);
210
- if (thread) {
211
- thread.title = title;
212
- await saveThreadMetadata(threads);
213
- }
214
-
215
- // Return a stream with a single text part
216
- return createAssistantStream((controller) => {
217
- controller.appendText(title);
218
- });
219
- }
220
-
221
- // No title generator — return empty stream
222
- return createAssistantStream(() => {});
223
- },
224
- };
225
-
226
- return adapter;
227
- };
@@ -1,20 +0,0 @@
1
- import type { ThreadMessage } from "@assistant-ui/core";
2
-
3
- export type TitleGenerationAdapter = {
4
- generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
5
- };
6
-
7
- export const createSimpleTitleAdapter = (): TitleGenerationAdapter => {
8
- return {
9
- async generateTitle(messages) {
10
- const firstUserMessage = messages.find((m) => m.role === "user");
11
- if (!firstUserMessage) return "New Thread";
12
-
13
- const textPart = firstUserMessage.content.find((p) => p.type === "text");
14
- if (!textPart || textPart.type !== "text") return "New Thread";
15
-
16
- const text = textPart.text.trim();
17
- return text.length > 50 ? `${text.slice(0, 47)}...` : text;
18
- },
19
- };
20
- };
@@ -1,5 +0,0 @@
1
- export {
2
- type TitleGenerationAdapter,
3
- createSimpleTitleAdapter,
4
- } from "./TitleGenerationAdapter";
5
- export { createLocalStorageAdapter } from "./LocalStorageThreadListAdapter";
@@ -1,20 +0,0 @@
1
- export { useThreadMessages } from "./useThreadMessages";
2
- export { useThreadIsRunning } from "./useThreadIsRunning";
3
- export { useThreadIsEmpty } from "./useThreadIsEmpty";
4
- export { useComposerSend } from "./useComposerSend";
5
- export { useComposerCancel } from "./useComposerCancel";
6
- export { useMessageReload } from "./useMessageReload";
7
- export { useMessageBranching } from "./useMessageBranching";
8
- export {
9
- useActionBarCopy,
10
- type UseActionBarCopyOptions,
11
- } from "./useActionBarCopy";
12
- export { useActionBarEdit } from "./useActionBarEdit";
13
- export { useActionBarReload } from "./useActionBarReload";
14
- export {
15
- useActionBarFeedbackPositive,
16
- useActionBarFeedbackNegative,
17
- } from "./useActionBarFeedback";
18
- export { useEditComposerSend } from "./useEditComposerSend";
19
- export { useEditComposerCancel } from "./useEditComposerCancel";
20
- export { useComposerAddAttachment } from "./useComposerAddAttachment";