@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,38 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export type UseActionBarCopyOptions = {
5
- copiedDuration?: number | undefined;
6
- copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;
7
- };
8
-
9
- export const useActionBarCopy = ({
10
- copiedDuration = 3000,
11
- copyToClipboard,
12
- }: UseActionBarCopyOptions = {}) => {
13
- const aui = useAui();
14
- const disabled = useAuiState((s) => {
15
- return !(
16
- (s.message.role !== "assistant" ||
17
- s.message.status?.type !== "running") &&
18
- s.message.parts.some((c) => c.type === "text" && c.text.length > 0)
19
- );
20
- });
21
- const isCopied = useAuiState((s) => s.message.isCopied);
22
- const isEditing = useAuiState((s) => s.composer.isEditing);
23
- const composerValue = useAuiState((s) => s.composer.text);
24
-
25
- const copy = useCallback(() => {
26
- const valueToCopy = isEditing ? composerValue : aui.message().getCopyText();
27
- if (!valueToCopy) return;
28
-
29
- const write = copyToClipboard ?? (() => {});
30
- const result = write(valueToCopy);
31
- Promise.resolve(result).then(() => {
32
- aui.message().setIsCopied(true);
33
- setTimeout(() => aui.message().setIsCopied(false), copiedDuration);
34
- });
35
- }, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);
36
-
37
- return { copy, disabled, isCopied };
38
- };
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useActionBarEdit = () => {
5
- const aui = useAui();
6
- const disabled = useAuiState((s) => s.composer.isEditing);
7
-
8
- const edit = useCallback(() => {
9
- aui.composer().beginEdit();
10
- }, [aui]);
11
-
12
- return { edit, disabled };
13
- };
@@ -1,28 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useActionBarFeedbackPositive = () => {
5
- const aui = useAui();
6
- const isSubmitted = useAuiState(
7
- (s) => s.message.metadata.submittedFeedback?.type === "positive",
8
- );
9
-
10
- const submit = useCallback(() => {
11
- aui.message().submitFeedback({ type: "positive" });
12
- }, [aui]);
13
-
14
- return { submit, isSubmitted };
15
- };
16
-
17
- export const useActionBarFeedbackNegative = () => {
18
- const aui = useAui();
19
- const isSubmitted = useAuiState(
20
- (s) => s.message.metadata.submittedFeedback?.type === "negative",
21
- );
22
-
23
- const submit = useCallback(() => {
24
- aui.message().submitFeedback({ type: "negative" });
25
- }, [aui]);
26
-
27
- return { submit, isSubmitted };
28
- };
@@ -1,18 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useActionBarReload = () => {
5
- const aui = useAui();
6
- const disabled = useAuiState(
7
- (s) =>
8
- s.thread.isRunning ||
9
- s.thread.isDisabled ||
10
- s.message.role !== "assistant",
11
- );
12
-
13
- const reload = useCallback(() => {
14
- aui.message().reload();
15
- }, [aui]);
16
-
17
- return { reload, disabled };
18
- };
@@ -1,16 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui } from "@assistant-ui/store";
3
- import type { CreateAttachment } from "@assistant-ui/core";
4
-
5
- export const useComposerAddAttachment = () => {
6
- const aui = useAui();
7
-
8
- const addAttachment = useCallback(
9
- (file: File | CreateAttachment) => {
10
- return aui.composer().addAttachment(file);
11
- },
12
- [aui],
13
- );
14
-
15
- return { addAttachment };
16
- };
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useComposerCancel = () => {
5
- const aui = useAui();
6
- const canCancel = useAuiState((s) => s.thread.isRunning);
7
-
8
- const cancel = useCallback(() => {
9
- aui.threads().thread("main").cancelRun();
10
- }, [aui]);
11
-
12
- return { cancel, canCancel };
13
- };
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useComposerSend = () => {
5
- const aui = useAui();
6
- const canSend = useAuiState((s) => !s.composer.isEmpty);
7
-
8
- const send = useCallback(() => {
9
- aui.composer().send();
10
- }, [aui]);
11
-
12
- return { send, canSend };
13
- };
@@ -1,12 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui } from "@assistant-ui/store";
3
-
4
- export const useEditComposerCancel = () => {
5
- const aui = useAui();
6
-
7
- const cancel = useCallback(() => {
8
- aui.composer().cancel();
9
- }, [aui]);
10
-
11
- return { cancel };
12
- };
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useEditComposerSend = () => {
5
- const aui = useAui();
6
- const disabled = useAuiState((s) => s.composer.isEmpty);
7
-
8
- const send = useCallback(() => {
9
- aui.composer().send();
10
- }, [aui]);
11
-
12
- return { send, disabled };
13
- };
@@ -1,18 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useMessageBranching = () => {
5
- const aui = useAui();
6
- const branchNumber = useAuiState((s) => s.message.branchNumber);
7
- const branchCount = useAuiState((s) => s.message.branchCount);
8
-
9
- const goToPrev = useCallback(() => {
10
- aui.message().switchToBranch({ position: "previous" });
11
- }, [aui]);
12
-
13
- const goToNext = useCallback(() => {
14
- aui.message().switchToBranch({ position: "next" });
15
- }, [aui]);
16
-
17
- return { branchNumber, branchCount, goToPrev, goToNext };
18
- };
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
-
4
- export const useMessageReload = () => {
5
- const aui = useAui();
6
- const canReload = useAuiState((s) => s.message.role === "assistant");
7
-
8
- const reload = useCallback(() => {
9
- aui.message().reload();
10
- }, [aui]);
11
-
12
- return { reload, canReload };
13
- };
@@ -1,5 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
-
3
- export const useThreadIsEmpty = (): boolean => {
4
- return useAuiState((s) => s.thread.isEmpty);
5
- };
@@ -1,5 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
-
3
- export const useThreadIsRunning = (): boolean => {
4
- return useAuiState((s) => s.thread.isRunning);
5
- };
@@ -1,6 +0,0 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
- import type { MessageState } from "@assistant-ui/core/store";
3
-
4
- export const useThreadMessages = (): readonly MessageState[] => {
5
- return useAuiState((s) => s.thread.messages);
6
- };
@@ -1,20 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { useEditComposerCancel } from "../../primitive-hooks/useEditComposerCancel";
3
- import { Pressable, type PressableProps } from "../internal/Pressable";
4
-
5
- export type EditComposerCancelProps = Omit<PressableProps, "onPress"> & {
6
- children: ReactNode;
7
- };
8
-
9
- export const EditComposerCancel = ({
10
- children,
11
- ...pressableProps
12
- }: EditComposerCancelProps) => {
13
- const { cancel } = useEditComposerCancel();
14
-
15
- return (
16
- <Pressable onPress={cancel} {...pressableProps}>
17
- {children}
18
- </Pressable>
19
- );
20
- };
@@ -1,40 +0,0 @@
1
- import type { ComponentProps } from "react";
2
- import { Box, Text, useFocus, useInput } from "ink";
3
- import { useAui, useAuiState } from "@assistant-ui/store";
4
-
5
- export type EditComposerInputProps = ComponentProps<typeof Box> & {
6
- /** Placeholder text shown when the input is empty. */
7
- placeholder?: string | undefined;
8
- /** Whether this input should receive focus automatically. @default true */
9
- autoFocus?: boolean | undefined;
10
- };
11
-
12
- export const EditComposerInput = ({
13
- placeholder = "",
14
- autoFocus = true,
15
- ...boxProps
16
- }: EditComposerInputProps) => {
17
- const aui = useAui();
18
- const text = useAuiState((s) => s.composer.text);
19
- const { isFocused } = useFocus({ autoFocus });
20
-
21
- useInput(
22
- (input, key) => {
23
- if (key.backspace || key.delete) {
24
- aui.composer().setText(text.slice(0, -1));
25
- return;
26
- }
27
- if (input && !key.ctrl && !key.meta && !key.return) {
28
- aui.composer().setText(text + input);
29
- }
30
- },
31
- { isActive: isFocused },
32
- );
33
-
34
- return (
35
- <Box {...boxProps}>
36
- <Text dimColor={!text && !!placeholder}>{text || placeholder}</Text>
37
- {isFocused && <Text>▋</Text>}
38
- </Box>
39
- );
40
- };
@@ -1,25 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import { useEditComposerSend } from "../../primitive-hooks/useEditComposerSend";
3
- import { Pressable, type PressableProps } from "../internal/Pressable";
4
-
5
- export type EditComposerSendProps = Omit<PressableProps, "onPress"> & {
6
- children: ReactNode;
7
- };
8
-
9
- export const EditComposerSend = ({
10
- children,
11
- disabled: disabledProp,
12
- ...pressableProps
13
- }: EditComposerSendProps) => {
14
- const { send, disabled } = useEditComposerSend();
15
-
16
- return (
17
- <Pressable
18
- onPress={send}
19
- disabled={disabledProp ?? disabled}
20
- {...pressableProps}
21
- >
22
- {children}
23
- </Pressable>
24
- );
25
- };