@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,7 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Pressable, type PressableProps } from "react-native";
3
- import { useComposerAddAttachment } from "../../primitive-hooks/useComposerAddAttachment";
4
- import { useAuiState } from "@assistant-ui/store";
3
+ import { useComposerAddAttachment } from "@assistant-ui/core/react";
5
4
 
6
5
  export type ComposerAddAttachmentProps = Omit<PressableProps, "onPress"> & {
7
6
  children: ReactNode;
@@ -11,7 +10,7 @@ export type ComposerAddAttachmentProps = Omit<PressableProps, "onPress"> & {
11
10
  * A button that triggers the attachment adding flow.
12
11
  *
13
12
  * Note: The actual file picker implementation is platform-specific.
14
- * This component calls `useComposerAddAttachment()` from your primitive-hooks.
13
+ * This component calls `useComposerAddAttachment()` from `@assistant-ui/core/react`.
15
14
  * You must handle the file selection in your own component using the returned `addAttachment` callback.
16
15
  */
17
16
  export const ComposerAddAttachment = ({
@@ -19,11 +18,10 @@ export const ComposerAddAttachment = ({
19
18
  disabled: disabledProp,
20
19
  ...pressableProps
21
20
  }: ComposerAddAttachmentProps) => {
22
- const isDisabled = useAuiState((s) => !s.composer.isEditing);
23
- const { addAttachment: _addAttachment } = useComposerAddAttachment();
21
+ const { disabled } = useComposerAddAttachment();
24
22
 
25
23
  return (
26
- <Pressable disabled={disabledProp ?? isDisabled} {...pressableProps}>
24
+ <Pressable disabled={disabledProp ?? disabled} {...pressableProps}>
27
25
  {children}
28
26
  </Pressable>
29
27
  );
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Pressable, type PressableProps } from "react-native";
3
- import { useComposerCancel } from "../../primitive-hooks/useComposerCancel";
3
+ import { useComposerCancel } from "@assistant-ui/core/react";
4
4
 
5
5
  export type ComposerCancelProps = Omit<PressableProps, "onPress"> & {
6
6
  children: ReactNode;
@@ -11,12 +11,12 @@ export const ComposerCancel = ({
11
11
  disabled,
12
12
  ...pressableProps
13
13
  }: ComposerCancelProps) => {
14
- const { cancel, canCancel } = useComposerCancel();
14
+ const { cancel, disabled: hookDisabled } = useComposerCancel();
15
15
 
16
16
  return (
17
17
  <Pressable
18
18
  onPress={cancel}
19
- disabled={disabled ?? !canCancel}
19
+ disabled={disabled ?? hookDisabled}
20
20
  {...pressableProps}
21
21
  >
22
22
  {children}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Pressable, type PressableProps } from "react-native";
3
- import { useComposerSend } from "../../primitive-hooks/useComposerSend";
3
+ import { useComposerSend } from "@assistant-ui/core/react";
4
4
 
5
5
  export type ComposerSendProps = Omit<PressableProps, "onPress"> & {
6
6
  children: ReactNode;
@@ -11,12 +11,12 @@ export const ComposerSend = ({
11
11
  disabled,
12
12
  ...pressableProps
13
13
  }: ComposerSendProps) => {
14
- const { send, canSend } = useComposerSend();
14
+ const { send, disabled: hookDisabled } = useComposerSend();
15
15
 
16
16
  return (
17
17
  <Pressable
18
18
  onPress={send}
19
- disabled={disabled ?? !canSend}
19
+ disabled={disabled ?? hookDisabled}
20
20
  {...pressableProps}
21
21
  >
22
22
  {children}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Pressable, type PressableProps } from "react-native";
3
- import { useEditComposerCancel } from "../../primitive-hooks/useEditComposerCancel";
3
+ import { useEditComposerCancel } from "@assistant-ui/core/react";
4
4
 
5
5
  export type EditComposerCancelProps = Omit<PressableProps, "onPress"> & {
6
6
  children: ReactNode;
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { Pressable, type PressableProps } from "react-native";
3
- import { useEditComposerSend } from "../../primitive-hooks/useEditComposerSend";
3
+ import { useEditComposerSend } from "@assistant-ui/core/react";
4
4
 
5
5
  export type EditComposerSendProps = Omit<PressableProps, "onPress"> & {
6
6
  children: ReactNode;
@@ -23,3 +23,15 @@ export {
23
23
  type ComposerAddAttachmentProps as AddAttachmentProps,
24
24
  } from "./ComposerAddAttachment";
25
25
  export { ComposerIf as If } from "./ComposerIf";
26
+ export {
27
+ EditComposerInput as EditInput,
28
+ type EditComposerInputProps as EditInputProps,
29
+ } from "./EditComposerInput";
30
+ export {
31
+ EditComposerSend as EditSend,
32
+ type EditComposerSendProps as EditSendProps,
33
+ } from "./EditComposerSend";
34
+ export {
35
+ EditComposerCancel as EditCancel,
36
+ type EditComposerCancelProps as EditCancelProps,
37
+ } from "./EditComposerCancel";
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import { useThreadIsEmpty } from "../../primitive-hooks/useThreadIsEmpty";
2
+ import { useThreadIsEmpty } from "@assistant-ui/core/react";
3
3
 
4
4
  export type ThreadEmptyProps = {
5
5
  children: ReactNode;
@@ -1,105 +1,4 @@
1
- import { useEffect, useMemo, useRef, useState } from "react";
2
- import type {
3
- AssistantRuntime,
4
- ChatModelAdapter,
5
- ThreadMessageLike,
6
- RemoteThreadListAdapter,
7
- } from "@assistant-ui/core";
8
- import { InMemoryThreadListAdapter } from "@assistant-ui/core";
9
- import type { LocalRuntimeOptionsBase } from "@assistant-ui/core/internal";
10
- import {
11
- AssistantRuntimeImpl,
12
- LocalRuntimeCore,
13
- } from "@assistant-ui/core/internal";
14
- import { useAuiState } from "@assistant-ui/store";
15
- import type { TitleGenerationAdapter } from "../adapters/TitleGenerationAdapter";
16
- import { useRemoteThreadListRuntime } from "./useRemoteThreadListRuntime";
17
- import { createLocalStorageAdapter } from "../adapters/LocalStorageThreadListAdapter";
18
- import { useRuntimeAdapters } from "../context/providers/RuntimeAdapterProvider";
19
-
20
- type AsyncStorageLike = {
21
- getItem(key: string): Promise<string | null>;
22
- setItem(key: string, value: string): Promise<void>;
23
- removeItem(key: string): Promise<void>;
24
- };
25
-
26
- export type LocalRuntimeOptions = Omit<LocalRuntimeOptionsBase, "adapters"> & {
27
- adapters?: Omit<LocalRuntimeOptionsBase["adapters"], "chatModel"> | undefined;
28
- initialMessages?: readonly ThreadMessageLike[] | undefined;
29
- titleGenerator?: TitleGenerationAdapter | undefined;
30
- storage?: AsyncStorageLike | undefined;
31
- storagePrefix?: string | undefined;
32
- };
33
-
34
- const useInnerLocalRuntime = (
35
- chatModel: ChatModelAdapter,
36
- options: Omit<
37
- LocalRuntimeOptions,
38
- "titleGenerator" | "storage" | "storagePrefix"
39
- >,
40
- ): AssistantRuntime => {
41
- const { initialMessages, ...restOptions } = options;
42
- const { modelContext, ...threadListAdapters } = useRuntimeAdapters() ?? {};
43
-
44
- const opt: LocalRuntimeOptionsBase = {
45
- ...restOptions,
46
- adapters: {
47
- ...threadListAdapters,
48
- ...restOptions.adapters,
49
- chatModel,
50
- },
51
- };
52
-
53
- const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));
54
-
55
- const threadIdRef = useRef<string | undefined>(undefined);
56
- threadIdRef.current = useAuiState((s) => s.threadListItem.remoteId);
57
-
58
- useEffect(() => {
59
- runtime.threads
60
- .getMainThreadRuntimeCore()
61
- .__internal_setGetThreadId(() => threadIdRef.current);
62
- }, [runtime]);
63
-
64
- useEffect(() => {
65
- return () => {
66
- runtime.threads.getMainThreadRuntimeCore().detach();
67
- };
68
- }, [runtime]);
69
-
70
- useEffect(() => {
71
- runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);
72
- runtime.threads.getMainThreadRuntimeCore().__internal_load();
73
- });
74
-
75
- useEffect(() => {
76
- if (!modelContext) return undefined;
77
- return runtime.registerModelContextProvider(modelContext);
78
- }, [modelContext, runtime]);
79
-
80
- return useMemo(() => new AssistantRuntimeImpl(runtime), [runtime]);
81
- };
82
-
83
- export const useLocalRuntime = (
84
- chatModel: ChatModelAdapter,
85
- options: LocalRuntimeOptions = {},
86
- ): AssistantRuntime => {
87
- const { titleGenerator, storage, storagePrefix, ...innerOptions } = options;
88
-
89
- const adapter: RemoteThreadListAdapter = useMemo(() => {
90
- if (!storage) return new InMemoryThreadListAdapter();
91
- return createLocalStorageAdapter({
92
- storage,
93
- prefix: storagePrefix,
94
- titleGenerator,
95
- });
96
- }, [storage, storagePrefix, titleGenerator]);
97
-
98
- return useRemoteThreadListRuntime({
99
- runtimeHook: function RuntimeHook() {
100
- return useInnerLocalRuntime(chatModel, innerOptions);
101
- },
102
- adapter,
103
- allowNesting: true,
104
- });
105
- };
1
+ export {
2
+ useLocalRuntime,
3
+ type LocalRuntimeOptions,
4
+ } from "@assistant-ui/core/react";
@@ -1,15 +0,0 @@
1
- import type { RemoteThreadListAdapter } from "@assistant-ui/core";
2
- import type { TitleGenerationAdapter } from "./TitleGenerationAdapter.js";
3
- type AsyncStorageLike = {
4
- getItem(key: string): Promise<string | null>;
5
- setItem(key: string, value: string): Promise<void>;
6
- removeItem(key: string): Promise<void>;
7
- };
8
- type LocalStorageAdapterOptions = {
9
- storage: AsyncStorageLike;
10
- prefix?: string | undefined;
11
- titleGenerator?: TitleGenerationAdapter | undefined;
12
- };
13
- export declare const createLocalStorageAdapter: (options: LocalStorageAdapterOptions) => RemoteThreadListAdapter;
14
- export {};
15
- //# sourceMappingURL=LocalStorageThreadListAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalStorageThreadListAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/LocalStorageThreadListAdapter.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,uBAAuB,EAKxB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,oCAAiC;AAEvE,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CACrD,CAAC;AAyEF,eAAO,MAAM,yBAAyB,GACpC,SAAS,0BAA0B,KAClC,uBA2HF,CAAC"}
@@ -1,154 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createAssistantStream } from "assistant-stream";
3
- import { useMemo } from "react";
4
- import { useAui } from "@assistant-ui/store";
5
- import { RuntimeAdapterProvider } from "../context/providers/RuntimeAdapterProvider.js";
6
- class AsyncStorageHistoryAdapter {
7
- storage;
8
- aui;
9
- prefix;
10
- constructor(storage, aui, prefix) {
11
- this.storage = storage;
12
- this.aui = aui;
13
- this.prefix = prefix;
14
- }
15
- _messagesKey(remoteId) {
16
- return `${this.prefix}messages:${remoteId}`;
17
- }
18
- async load() {
19
- const remoteId = this.aui.threadListItem().getState().remoteId;
20
- if (!remoteId)
21
- return { messages: [] };
22
- const raw = await this.storage.getItem(this._messagesKey(remoteId));
23
- if (!raw)
24
- return { messages: [] };
25
- return JSON.parse(raw);
26
- }
27
- async append(item) {
28
- const { remoteId } = await this.aui.threadListItem().initialize();
29
- const key = this._messagesKey(remoteId);
30
- const raw = await this.storage.getItem(key);
31
- const repo = raw
32
- ? JSON.parse(raw)
33
- : { messages: [] };
34
- const idx = repo.messages.findIndex((m) => m.message.id === item.message.id);
35
- if (idx >= 0) {
36
- repo.messages[idx] = item;
37
- }
38
- else {
39
- repo.messages.push(item);
40
- }
41
- repo.headId = item.message.id;
42
- await this.storage.setItem(key, JSON.stringify(repo));
43
- }
44
- }
45
- const createHistoryProvider = (storage, prefix) => {
46
- const Provider = ({ children }) => {
47
- const aui = useAui();
48
- const history = useMemo(() => new AsyncStorageHistoryAdapter(storage, aui, prefix), [aui]);
49
- const adapters = useMemo(() => ({ history }), [history]);
50
- return (_jsx(RuntimeAdapterProvider, { adapters: adapters, children: children }));
51
- };
52
- return Provider;
53
- };
54
- export const createLocalStorageAdapter = (options) => {
55
- const { storage, prefix = "@assistant-ui:", titleGenerator } = options;
56
- const threadsKey = `${prefix}threads`;
57
- const messagesKey = (threadId) => `${prefix}messages:${threadId}`;
58
- const loadThreadMetadata = async () => {
59
- const raw = await storage.getItem(threadsKey);
60
- return raw ? JSON.parse(raw) : [];
61
- };
62
- const saveThreadMetadata = async (threads) => {
63
- await storage.setItem(threadsKey, JSON.stringify(threads));
64
- };
65
- const adapter = {
66
- unstable_Provider: createHistoryProvider(storage, prefix),
67
- async list() {
68
- const threads = await loadThreadMetadata();
69
- return {
70
- threads: threads.map((t) => ({
71
- remoteId: t.remoteId,
72
- externalId: t.externalId,
73
- status: t.status,
74
- title: t.title,
75
- })),
76
- };
77
- },
78
- async initialize(threadId) {
79
- const remoteId = threadId;
80
- const threads = await loadThreadMetadata();
81
- // Only add if not already present
82
- if (!threads.some((t) => t.remoteId === remoteId)) {
83
- threads.unshift({
84
- remoteId,
85
- status: "regular",
86
- });
87
- await saveThreadMetadata(threads);
88
- }
89
- return { remoteId, externalId: undefined };
90
- },
91
- async rename(remoteId, newTitle) {
92
- const threads = await loadThreadMetadata();
93
- const thread = threads.find((t) => t.remoteId === remoteId);
94
- if (thread) {
95
- thread.title = newTitle;
96
- await saveThreadMetadata(threads);
97
- }
98
- },
99
- async archive(remoteId) {
100
- const threads = await loadThreadMetadata();
101
- const thread = threads.find((t) => t.remoteId === remoteId);
102
- if (thread) {
103
- thread.status = "archived";
104
- await saveThreadMetadata(threads);
105
- }
106
- },
107
- async unarchive(remoteId) {
108
- const threads = await loadThreadMetadata();
109
- const thread = threads.find((t) => t.remoteId === remoteId);
110
- if (thread) {
111
- thread.status = "regular";
112
- await saveThreadMetadata(threads);
113
- }
114
- },
115
- async delete(remoteId) {
116
- const threads = await loadThreadMetadata();
117
- const filtered = threads.filter((t) => t.remoteId !== remoteId);
118
- await saveThreadMetadata(filtered);
119
- await storage.removeItem(messagesKey(remoteId));
120
- },
121
- async fetch(threadId) {
122
- const threads = await loadThreadMetadata();
123
- const thread = threads.find((t) => t.remoteId === threadId);
124
- if (!thread)
125
- throw new Error("Thread not found");
126
- return {
127
- remoteId: thread.remoteId,
128
- externalId: thread.externalId,
129
- status: thread.status,
130
- title: thread.title,
131
- };
132
- },
133
- async generateTitle(remoteId, messages) {
134
- if (titleGenerator) {
135
- const title = await titleGenerator.generateTitle(messages);
136
- // Update the stored title
137
- const threads = await loadThreadMetadata();
138
- const thread = threads.find((t) => t.remoteId === remoteId);
139
- if (thread) {
140
- thread.title = title;
141
- await saveThreadMetadata(threads);
142
- }
143
- // Return a stream with a single text part
144
- return createAssistantStream((controller) => {
145
- controller.appendText(title);
146
- });
147
- }
148
- // No title generator — return empty stream
149
- return createAssistantStream(() => { });
150
- },
151
- };
152
- return adapter;
153
- };
154
- //# sourceMappingURL=LocalStorageThreadListAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalStorageThreadListAdapter.js","sourceRoot":"","sources":["../../src/adapters/LocalStorageThreadListAdapter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAwB,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAyB,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAa7C,OAAO,EAAE,sBAAsB,EAAE,uDAAoD;AAsBrF,MAAM,0BAA0B;IAEpB;IACA;IACA;IAHV,YACU,OAAyB,EACzB,GAA8B,EAC9B,MAAc;QAFd,YAAO,GAAP,OAAO,CAAkB;QACzB,QAAG,GAAH,GAAG,CAA2B;QAC9B,WAAM,GAAN,MAAM,CAAQ;IACrB,CAAC;IAEI,YAAY,CAAC,QAAgB;QACnC,OAAO,GAAG,IAAI,CAAC,MAAM,YAAY,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;QAC/D,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAEvC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA8B,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAmC;QAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,UAAU,EAAE,CAAC;QAElE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAA8B,GAAG;YACzC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+B;YAChD,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CACxC,CAAC;QACF,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;CACF;AAED,MAAM,qBAAqB,GAAG,CAC5B,OAAyB,EACzB,MAAc,EACS,EAAE;IACzB,MAAM,QAAQ,GAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACvD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,IAAI,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAC1D,CAAC,GAAG,CAAC,CACN,CAAC;QACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAEzD,OAAO,CACL,KAAC,sBAAsB,IAAC,QAAQ,EAAE,QAAQ,YACvC,QAAQ,GACc,CAC1B,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,OAAmC,EACV,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEvE,MAAM,UAAU,GAAG,GAAG,MAAM,SAAS,CAAC;IACtC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,MAAM,YAAY,QAAQ,EAAE,CAAC;IAE1E,MAAM,kBAAkB,GAAG,KAAK,IAAqC,EAAE;QACrE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAC9B,OAA+B,EAChB,EAAE;QACjB,MAAM,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,OAAO,GAA4B;QACvC,iBAAiB,EAAE,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC;QAEzD,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,UAAU,CACd,QAAgB;YAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAE3C,kCAAkC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,OAAO,CAAC;oBACd,QAAQ;oBACR,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;gBACH,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAC7C,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,QAAgB;YAC7C,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACxB,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,QAAgB;YAC5B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC3B,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,QAAgB;YAC9B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;gBAC1B,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,QAAgB;YAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAChE,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,QAAgB;YAC1B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjD,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,QAAkC;YAElC,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAE3D,0BAA0B;gBAC1B,MAAM,OAAO,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBAC5D,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;oBACrB,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;gBAED,0CAA0C;gBAC1C,OAAO,qBAAqB,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC1C,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;YAED,2CAA2C;YAC3C,OAAO,qBAAqB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,CAAC;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import type { ThreadMessage } from "@assistant-ui/core";
2
- export type TitleGenerationAdapter = {
3
- generateTitle(messages: readonly ThreadMessage[]): Promise<string>;
4
- };
5
- export declare const createSimpleTitleAdapter: () => TitleGenerationAdapter;
6
- //# sourceMappingURL=TitleGenerationAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TitleGenerationAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/TitleGenerationAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACnC,aAAa,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,sBAa3C,CAAC"}
@@ -1,15 +0,0 @@
1
- export const createSimpleTitleAdapter = () => {
2
- return {
3
- async generateTitle(messages) {
4
- const firstUserMessage = messages.find((m) => m.role === "user");
5
- if (!firstUserMessage)
6
- return "New Thread";
7
- const textPart = firstUserMessage.content.find((p) => p.type === "text");
8
- if (!textPart || textPart.type !== "text")
9
- return "New Thread";
10
- const text = textPart.text.trim();
11
- return text.length > 50 ? `${text.slice(0, 47)}...` : text;
12
- },
13
- };
14
- };
15
- //# sourceMappingURL=TitleGenerationAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TitleGenerationAdapter.js","sourceRoot":"","sources":["../../src/adapters/TitleGenerationAdapter.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAA2B,EAAE;IACnE,OAAO;QACL,KAAK,CAAC,aAAa,CAAC,QAAQ;YAC1B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACjE,IAAI,CAAC,gBAAgB;gBAAE,OAAO,YAAY,CAAC;YAE3C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YACzE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,YAAY,CAAC;YAE/D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export { type TitleGenerationAdapter, createSimpleTitleAdapter, } from "./TitleGenerationAdapter.js";
2
- export { createLocalStorageAdapter } from "./LocalStorageThreadListAdapter.js";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC3B,wBAAwB,GACzB,oCAAiC;AAClC,OAAO,EAAE,yBAAyB,EAAE,2CAAwC"}
@@ -1,3 +0,0 @@
1
- export { createSimpleTitleAdapter, } from "./TitleGenerationAdapter.js";
2
- export { createLocalStorageAdapter } from "./LocalStorageThreadListAdapter.js";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,GACzB,oCAAiC;AAClC,OAAO,EAAE,yBAAyB,EAAE,2CAAwC"}
@@ -1,13 +0,0 @@
1
- export { useThreadMessages } from "./useThreadMessages.js";
2
- export { useThreadIsRunning } from "./useThreadIsRunning.js";
3
- export { useThreadIsEmpty } from "./useThreadIsEmpty.js";
4
- export { useComposerSend } from "./useComposerSend.js";
5
- export { useComposerCancel } from "./useComposerCancel.js";
6
- export { useMessageReload } from "./useMessageReload.js";
7
- export { useMessageBranching } from "./useMessageBranching.js";
8
- export { useActionBarCopy, type UseActionBarCopyOptions, } from "./useActionBarCopy.js";
9
- export { useActionBarEdit } from "./useActionBarEdit.js";
10
- export { useActionBarReload } from "./useActionBarReload.js";
11
- export { useActionBarFeedbackPositive, useActionBarFeedbackNegative, } from "./useActionBarFeedback.js";
12
- export { useComposerAddAttachment } from "./useComposerAddAttachment.js";
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,8BAA2B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,kCAA+B;AAChC,OAAO,EAAE,wBAAwB,EAAE,sCAAmC"}
@@ -1,13 +0,0 @@
1
- export { useThreadMessages } from "./useThreadMessages.js";
2
- export { useThreadIsRunning } from "./useThreadIsRunning.js";
3
- export { useThreadIsEmpty } from "./useThreadIsEmpty.js";
4
- export { useComposerSend } from "./useComposerSend.js";
5
- export { useComposerCancel } from "./useComposerCancel.js";
6
- export { useMessageReload } from "./useMessageReload.js";
7
- export { useMessageBranching } from "./useMessageBranching.js";
8
- export { useActionBarCopy, } from "./useActionBarCopy.js";
9
- export { useActionBarEdit } from "./useActionBarEdit.js";
10
- export { useActionBarReload } from "./useActionBarReload.js";
11
- export { useActionBarFeedbackPositive, useActionBarFeedbackNegative, } from "./useActionBarFeedback.js";
12
- export { useComposerAddAttachment } from "./useComposerAddAttachment.js";
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/primitive-hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,eAAe,EAAE,6BAA0B;AACpD,OAAO,EAAE,iBAAiB,EAAE,+BAA4B;AACxD,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,OAAO,EACL,gBAAgB,GAEjB,8BAA2B;AAC5B,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AACtD,OAAO,EAAE,kBAAkB,EAAE,gCAA6B;AAC1D,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,kCAA+B;AAChC,OAAO,EAAE,wBAAwB,EAAE,sCAAmC"}
@@ -1,10 +0,0 @@
1
- export type UseActionBarCopyOptions = {
2
- copiedDuration?: number | undefined;
3
- copyToClipboard?: ((text: string) => void | Promise<void>) | undefined;
4
- };
5
- export declare const useActionBarCopy: ({ copiedDuration, copyToClipboard, }?: UseActionBarCopyOptions) => {
6
- copy: () => void;
7
- disabled: boolean;
8
- isCopied: boolean;
9
- };
10
- //# sourceMappingURL=useActionBarCopy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarCopy.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,uCAG9B,uBAA4B;;;;CA0B9B,CAAC"}
@@ -1,26 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useActionBarCopy = ({ copiedDuration = 3000, copyToClipboard, } = {}) => {
4
- const aui = useAui();
5
- const disabled = useAuiState((s) => {
6
- return !((s.message.role !== "assistant" ||
7
- s.message.status?.type !== "running") &&
8
- s.message.parts.some((c) => c.type === "text" && c.text.length > 0));
9
- });
10
- const isCopied = useAuiState((s) => s.message.isCopied);
11
- const isEditing = useAuiState((s) => s.composer.isEditing);
12
- const composerValue = useAuiState((s) => s.composer.text);
13
- const copy = useCallback(() => {
14
- const valueToCopy = isEditing ? composerValue : aui.message().getCopyText();
15
- if (!valueToCopy)
16
- return;
17
- const write = copyToClipboard ?? (() => { });
18
- const result = write(valueToCopy);
19
- Promise.resolve(result).then(() => {
20
- aui.message().setIsCopied(true);
21
- setTimeout(() => aui.message().setIsCopied(false), copiedDuration);
22
- });
23
- }, [aui, isEditing, composerValue, copiedDuration, copyToClipboard]);
24
- return { copy, disabled, isCopied };
25
- };
26
- //# sourceMappingURL=useActionBarCopy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarCopy.js","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarCopy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAO1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,cAAc,GAAG,IAAI,EACrB,eAAe,MACY,EAAE,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;QACjC,OAAO,CAAC,CACN,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAC7B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC;YACvC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,MAAM,KAAK,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YAChC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;IAErE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useActionBarEdit: () => {
2
- edit: () => void;
3
- disabled: boolean;
4
- };
5
- //# sourceMappingURL=useActionBarEdit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarEdit.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarEdit.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 useActionBarEdit = () => {
4
- const aui = useAui();
5
- const disabled = useAuiState((s) => s.composer.isEditing);
6
- const edit = useCallback(() => {
7
- aui.composer().beginEdit();
8
- }, [aui]);
9
- return { edit, disabled };
10
- };
11
- //# sourceMappingURL=useActionBarEdit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarEdit.js","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarEdit.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,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;IAC7B,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- export declare const useActionBarFeedbackPositive: () => {
2
- submit: () => void;
3
- isSubmitted: boolean;
4
- };
5
- export declare const useActionBarFeedbackNegative: () => {
6
- submit: () => void;
7
- isSubmitted: boolean;
8
- };
9
- //# sourceMappingURL=useActionBarFeedback.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarFeedback.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarFeedback.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,4BAA4B;;;CAWxC,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;CAWxC,CAAC"}
@@ -1,19 +0,0 @@
1
- import { useCallback } from "react";
2
- import { useAui, useAuiState } from "@assistant-ui/store";
3
- export const useActionBarFeedbackPositive = () => {
4
- const aui = useAui();
5
- const isSubmitted = useAuiState((s) => s.message.metadata.submittedFeedback?.type === "positive");
6
- const submit = useCallback(() => {
7
- aui.message().submitFeedback({ type: "positive" });
8
- }, [aui]);
9
- return { submit, isSubmitted };
10
- };
11
- export const useActionBarFeedbackNegative = () => {
12
- const aui = useAui();
13
- const isSubmitted = useAuiState((s) => s.message.metadata.submittedFeedback?.type === "negative");
14
- const submit = useCallback(() => {
15
- aui.message().submitFeedback({ type: "negative" });
16
- }, [aui]);
17
- return { submit, isSubmitted };
18
- };
19
- //# sourceMappingURL=useActionBarFeedback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarFeedback.js","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarFeedback.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,4BAA4B,GAAG,GAAG,EAAE;IAC/C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,KAAK,UAAU,CACjE,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC/C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;IACrB,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,KAAK,UAAU,CACjE,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,GAAG,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare const useActionBarReload: () => {
2
- reload: () => void;
3
- disabled: boolean;
4
- };
5
- //# sourceMappingURL=useActionBarReload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useActionBarReload.d.ts","sourceRoot":"","sources":["../../src/primitive-hooks/useActionBarReload.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;CAc9B,CAAC"}