@assistant-ui/react-native 0.1.3 → 0.1.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 (148) hide show
  1. package/dist/context/AssistantContext.d.ts +1 -9
  2. package/dist/context/AssistantContext.d.ts.map +1 -1
  3. package/dist/context/AssistantContext.js +1 -15
  4. package/dist/context/AssistantContext.js.map +1 -1
  5. package/dist/index.d.ts +1 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -1
  10. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  11. package/dist/primitives/actionBar/ActionBarCopy.js +1 -1
  12. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  13. package/dist/primitives/actionBar/ActionBarEdit.js +1 -1
  14. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  15. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +1 -1
  16. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  17. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +1 -1
  18. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  19. package/dist/primitives/actionBar/ActionBarReload.js +1 -1
  20. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  21. package/dist/primitives/composer/ComposerAddAttachment.d.ts +1 -1
  22. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  23. package/dist/primitives/composer/ComposerAddAttachment.js +4 -6
  24. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  25. package/dist/primitives/composer/ComposerCancel.js +3 -3
  26. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  27. package/dist/primitives/composer/ComposerSend.js +3 -3
  28. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  29. package/dist/primitives/composer/EditComposerCancel.js +1 -1
  30. package/dist/primitives/composer/EditComposerCancel.js.map +1 -1
  31. package/dist/primitives/composer/EditComposerSend.js +1 -1
  32. package/dist/primitives/composer/EditComposerSend.js.map +1 -1
  33. package/dist/primitives/composer/index.d.ts +3 -0
  34. package/dist/primitives/composer/index.d.ts.map +1 -1
  35. package/dist/primitives/composer/index.js +3 -0
  36. package/dist/primitives/composer/index.js.map +1 -1
  37. package/dist/primitives/thread/ThreadEmpty.js +1 -1
  38. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  39. package/dist/runtimes/useLocalRuntime.d.ts +1 -17
  40. package/dist/runtimes/useLocalRuntime.d.ts.map +1 -1
  41. package/dist/runtimes/useLocalRuntime.js +1 -61
  42. package/dist/runtimes/useLocalRuntime.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/context/AssistantContext.tsx +4 -33
  45. package/src/index.ts +1 -19
  46. package/src/primitives/actionBar/ActionBarCopy.tsx +1 -1
  47. package/src/primitives/actionBar/ActionBarEdit.tsx +1 -1
  48. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +1 -1
  49. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +1 -1
  50. package/src/primitives/actionBar/ActionBarReload.tsx +1 -1
  51. package/src/primitives/composer/ComposerAddAttachment.tsx +4 -6
  52. package/src/primitives/composer/ComposerCancel.tsx +3 -3
  53. package/src/primitives/composer/ComposerSend.tsx +3 -3
  54. package/src/primitives/composer/EditComposerCancel.tsx +1 -1
  55. package/src/primitives/composer/EditComposerSend.tsx +1 -1
  56. package/src/primitives/composer/index.ts +12 -0
  57. package/src/primitives/thread/ThreadEmpty.tsx +1 -1
  58. package/src/runtimes/useLocalRuntime.ts +4 -105
  59. package/dist/adapters/LocalStorageThreadListAdapter.d.ts +0 -15
  60. package/dist/adapters/LocalStorageThreadListAdapter.d.ts.map +0 -1
  61. package/dist/adapters/LocalStorageThreadListAdapter.js +0 -154
  62. package/dist/adapters/LocalStorageThreadListAdapter.js.map +0 -1
  63. package/dist/adapters/TitleGenerationAdapter.d.ts +0 -6
  64. package/dist/adapters/TitleGenerationAdapter.d.ts.map +0 -1
  65. package/dist/adapters/TitleGenerationAdapter.js +0 -15
  66. package/dist/adapters/TitleGenerationAdapter.js.map +0 -1
  67. package/dist/adapters/index.d.ts +0 -3
  68. package/dist/adapters/index.d.ts.map +0 -1
  69. package/dist/adapters/index.js +0 -3
  70. package/dist/adapters/index.js.map +0 -1
  71. package/dist/primitive-hooks/index.d.ts +0 -13
  72. package/dist/primitive-hooks/index.d.ts.map +0 -1
  73. package/dist/primitive-hooks/index.js +0 -13
  74. package/dist/primitive-hooks/index.js.map +0 -1
  75. package/dist/primitive-hooks/useActionBarCopy.d.ts +0 -10
  76. package/dist/primitive-hooks/useActionBarCopy.d.ts.map +0 -1
  77. package/dist/primitive-hooks/useActionBarCopy.js +0 -26
  78. package/dist/primitive-hooks/useActionBarCopy.js.map +0 -1
  79. package/dist/primitive-hooks/useActionBarEdit.d.ts +0 -5
  80. package/dist/primitive-hooks/useActionBarEdit.d.ts.map +0 -1
  81. package/dist/primitive-hooks/useActionBarEdit.js +0 -11
  82. package/dist/primitive-hooks/useActionBarEdit.js.map +0 -1
  83. package/dist/primitive-hooks/useActionBarFeedback.d.ts +0 -9
  84. package/dist/primitive-hooks/useActionBarFeedback.d.ts.map +0 -1
  85. package/dist/primitive-hooks/useActionBarFeedback.js +0 -19
  86. package/dist/primitive-hooks/useActionBarFeedback.js.map +0 -1
  87. package/dist/primitive-hooks/useActionBarReload.d.ts +0 -5
  88. package/dist/primitive-hooks/useActionBarReload.d.ts.map +0 -1
  89. package/dist/primitive-hooks/useActionBarReload.js +0 -13
  90. package/dist/primitive-hooks/useActionBarReload.js.map +0 -1
  91. package/dist/primitive-hooks/useComposerAddAttachment.d.ts +0 -5
  92. package/dist/primitive-hooks/useComposerAddAttachment.d.ts.map +0 -1
  93. package/dist/primitive-hooks/useComposerAddAttachment.js +0 -10
  94. package/dist/primitive-hooks/useComposerAddAttachment.js.map +0 -1
  95. package/dist/primitive-hooks/useComposerCancel.d.ts +0 -5
  96. package/dist/primitive-hooks/useComposerCancel.d.ts.map +0 -1
  97. package/dist/primitive-hooks/useComposerCancel.js +0 -11
  98. package/dist/primitive-hooks/useComposerCancel.js.map +0 -1
  99. package/dist/primitive-hooks/useComposerSend.d.ts +0 -5
  100. package/dist/primitive-hooks/useComposerSend.d.ts.map +0 -1
  101. package/dist/primitive-hooks/useComposerSend.js +0 -11
  102. package/dist/primitive-hooks/useComposerSend.js.map +0 -1
  103. package/dist/primitive-hooks/useEditComposerCancel.d.ts +0 -4
  104. package/dist/primitive-hooks/useEditComposerCancel.d.ts.map +0 -1
  105. package/dist/primitive-hooks/useEditComposerCancel.js +0 -10
  106. package/dist/primitive-hooks/useEditComposerCancel.js.map +0 -1
  107. package/dist/primitive-hooks/useEditComposerSend.d.ts +0 -5
  108. package/dist/primitive-hooks/useEditComposerSend.d.ts.map +0 -1
  109. package/dist/primitive-hooks/useEditComposerSend.js +0 -11
  110. package/dist/primitive-hooks/useEditComposerSend.js.map +0 -1
  111. package/dist/primitive-hooks/useMessageBranching.d.ts +0 -7
  112. package/dist/primitive-hooks/useMessageBranching.d.ts.map +0 -1
  113. package/dist/primitive-hooks/useMessageBranching.js +0 -15
  114. package/dist/primitive-hooks/useMessageBranching.js.map +0 -1
  115. package/dist/primitive-hooks/useMessageReload.d.ts +0 -5
  116. package/dist/primitive-hooks/useMessageReload.d.ts.map +0 -1
  117. package/dist/primitive-hooks/useMessageReload.js +0 -11
  118. package/dist/primitive-hooks/useMessageReload.js.map +0 -1
  119. package/dist/primitive-hooks/useThreadIsEmpty.d.ts +0 -2
  120. package/dist/primitive-hooks/useThreadIsEmpty.d.ts.map +0 -1
  121. package/dist/primitive-hooks/useThreadIsEmpty.js +0 -5
  122. package/dist/primitive-hooks/useThreadIsEmpty.js.map +0 -1
  123. package/dist/primitive-hooks/useThreadIsRunning.d.ts +0 -2
  124. package/dist/primitive-hooks/useThreadIsRunning.d.ts.map +0 -1
  125. package/dist/primitive-hooks/useThreadIsRunning.js +0 -5
  126. package/dist/primitive-hooks/useThreadIsRunning.js.map +0 -1
  127. package/dist/primitive-hooks/useThreadMessages.d.ts +0 -3
  128. package/dist/primitive-hooks/useThreadMessages.d.ts.map +0 -1
  129. package/dist/primitive-hooks/useThreadMessages.js +0 -5
  130. package/dist/primitive-hooks/useThreadMessages.js.map +0 -1
  131. package/src/adapters/LocalStorageThreadListAdapter.tsx +0 -227
  132. package/src/adapters/TitleGenerationAdapter.ts +0 -20
  133. package/src/adapters/index.ts +0 -5
  134. package/src/primitive-hooks/index.ts +0 -18
  135. package/src/primitive-hooks/useActionBarCopy.ts +0 -38
  136. package/src/primitive-hooks/useActionBarEdit.ts +0 -13
  137. package/src/primitive-hooks/useActionBarFeedback.ts +0 -28
  138. package/src/primitive-hooks/useActionBarReload.ts +0 -18
  139. package/src/primitive-hooks/useComposerAddAttachment.ts +0 -16
  140. package/src/primitive-hooks/useComposerCancel.ts +0 -13
  141. package/src/primitive-hooks/useComposerSend.ts +0 -15
  142. package/src/primitive-hooks/useEditComposerCancel.ts +0 -12
  143. package/src/primitive-hooks/useEditComposerSend.ts +0 -13
  144. package/src/primitive-hooks/useMessageBranching.ts +0 -18
  145. package/src/primitive-hooks/useMessageReload.ts +0 -13
  146. package/src/primitive-hooks/useThreadIsEmpty.ts +0 -5
  147. package/src/primitive-hooks/useThreadIsRunning.ts +0 -5
  148. package/src/primitive-hooks/useThreadMessages.ts +0 -6
@@ -1,13 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useActionBarReload = () => {
4
- const aui = useAui();
5
- const disabled = useAuiState((s) => s.thread.isRunning ||
6
- s.thread.isDisabled ||
7
- s.message.role !== "assistant");
8
- const reload = useCallback(() => {
9
- aui.message().reload();
10
- }, [aui]);
11
- return { reload, disabled };
12
- };
13
- //# sourceMappingURL=useActionBarReload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarReload.js","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarReload.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,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,CAAC,SAAS;QAClB,CAAC,CAAC,MAAM,CAAC,UAAU;QACnB,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,CACjC,CAAC;IAEF,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,QAAQ,EAAE,CAAC;AAC9B,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { CreateAttachment } from "@assistant-ui/core";
2
- export declare const useComposerAddAttachment: () => {
3
- addAttachment: (file: File | CreateAttachment) => Promise<void>;
4
- };
5
- //# sourceMappingURL=useComposerAddAttachment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useComposerAddAttachment.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useComposerAddAttachment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,wBAAwB;0BAI1B,IAAI,GAAG,gBAAgB;CAOjC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui } from "@assistant-ui/store";
3
- export const useComposerAddAttachment = () => {
4
- const aui = useAui();
5
- const addAttachment = useCallback((file) => {
6
- return aui.composer().addAttachment(file);
7
- }, [aui]);
8
- return { addAttachment };
9
- };
10
- //# sourceMappingURL=useComposerAddAttachment.js.map
@@ -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.composer().cancel();
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,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,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;;;CAW3B,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.thread.isRunning && s.composer.isEditing && !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,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAC1E,CAAC;IAEF,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,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,18 +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 { useComposerAddAttachment } from "./useComposerAddAttachment";
@@ -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
- };