@assistant-ui/core 0.1.2 → 0.1.3

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 (104) hide show
  1. package/dist/model-context/frame/provider.d.ts.map +1 -1
  2. package/dist/model-context/frame/provider.js +2 -4
  3. package/dist/model-context/frame/provider.js.map +1 -1
  4. package/dist/react/index.d.ts +2 -1
  5. package/dist/react/index.d.ts.map +1 -1
  6. package/dist/react/index.js +2 -1
  7. package/dist/react/index.js.map +1 -1
  8. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +97 -0
  9. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
  10. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +111 -0
  11. package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -0
  12. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +115 -0
  13. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
  14. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +444 -0
  15. package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -0
  16. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +18 -0
  17. package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -0
  18. package/dist/react/runtimes/RuntimeAdapterProvider.js +14 -0
  19. package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -0
  20. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
  21. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
  22. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +528 -0
  23. package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
  24. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +15 -0
  25. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -0
  26. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +83 -0
  27. package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -0
  28. package/dist/react/runtimes/cloud/auiV0.d.ts +62 -0
  29. package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -0
  30. package/dist/react/runtimes/cloud/auiV0.js +74 -0
  31. package/dist/react/runtimes/cloud/auiV0.js.map +1 -0
  32. package/dist/react/runtimes/cloud/index.d.ts +4 -0
  33. package/dist/react/runtimes/cloud/index.d.ts.map +1 -0
  34. package/dist/react/runtimes/cloud/index.js +4 -0
  35. package/dist/react/runtimes/cloud/index.js.map +1 -0
  36. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +13 -0
  37. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -0
  38. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +102 -0
  39. package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -0
  40. package/dist/react/runtimes/createMessageConverter.d.ts +17 -0
  41. package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -0
  42. package/dist/react/runtimes/createMessageConverter.js +50 -0
  43. package/dist/react/runtimes/createMessageConverter.js.map +1 -0
  44. package/dist/react/runtimes/external-message-converter.d.ts +34 -0
  45. package/dist/react/runtimes/external-message-converter.d.ts.map +1 -0
  46. package/dist/react/runtimes/external-message-converter.js +309 -0
  47. package/dist/react/runtimes/external-message-converter.js.map +1 -0
  48. package/dist/react/runtimes/index.d.ts +10 -0
  49. package/dist/react/runtimes/index.d.ts.map +1 -0
  50. package/dist/react/runtimes/index.js +10 -0
  51. package/dist/react/runtimes/index.js.map +1 -0
  52. package/dist/react/runtimes/useExternalStoreRuntime.d.ts +4 -0
  53. package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -0
  54. package/dist/react/runtimes/useExternalStoreRuntime.js +19 -0
  55. package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -0
  56. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +4 -0
  57. package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -0
  58. package/dist/react/runtimes/useRemoteThreadListRuntime.js +48 -0
  59. package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -0
  60. package/dist/react/runtimes/useToolInvocations.d.ts +38 -0
  61. package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -0
  62. package/dist/react/runtimes/useToolInvocations.js +411 -0
  63. package/dist/react/runtimes/useToolInvocations.js.map +1 -0
  64. package/dist/react/types/store-augmentation.d.ts +0 -1
  65. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  66. package/dist/react/types/store-augmentation.js +1 -1
  67. package/dist/react/types/store-augmentation.js.map +1 -1
  68. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  69. package/dist/runtime/base/base-composer-runtime-core.js +2 -0
  70. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  71. package/dist/store/index.d.ts +1 -1
  72. package/dist/store/index.d.ts.map +1 -1
  73. package/dist/store/index.js +1 -2
  74. package/dist/store/index.js.map +1 -1
  75. package/dist/utils/json/is-json-equal.d.ts +2 -0
  76. package/dist/utils/json/is-json-equal.d.ts.map +1 -0
  77. package/dist/utils/json/is-json-equal.js +31 -0
  78. package/dist/utils/json/is-json-equal.js.map +1 -0
  79. package/dist/utils/json/is-json.d.ts +6 -0
  80. package/dist/utils/json/is-json.d.ts.map +1 -0
  81. package/dist/utils/json/is-json.js +33 -0
  82. package/dist/utils/json/is-json.js.map +1 -0
  83. package/package.json +10 -9
  84. package/src/model-context/frame/provider.ts +2 -6
  85. package/src/react/index.ts +2 -1
  86. package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +176 -0
  87. package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +534 -0
  88. package/src/react/runtimes/RuntimeAdapterProvider.tsx +40 -0
  89. package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +785 -0
  90. package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +101 -0
  91. package/src/react/runtimes/cloud/auiV0.ts +160 -0
  92. package/src/react/runtimes/cloud/index.ts +3 -0
  93. package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +152 -0
  94. package/src/react/runtimes/createMessageConverter.ts +77 -0
  95. package/src/react/runtimes/external-message-converter.ts +487 -0
  96. package/src/react/runtimes/index.ts +30 -0
  97. package/src/react/runtimes/useExternalStoreRuntime.ts +27 -0
  98. package/src/react/runtimes/useRemoteThreadListRuntime.ts +76 -0
  99. package/src/react/runtimes/useToolInvocations.ts +594 -0
  100. package/src/react/types/store-augmentation.ts +0 -2
  101. package/src/runtime/base/base-composer-runtime-core.ts +2 -0
  102. package/src/store/index.ts +1 -2
  103. package/src/utils/json/is-json-equal.ts +48 -0
  104. package/src/utils/json/is-json.ts +58 -0
@@ -0,0 +1,62 @@
1
+ import type { MessageStatus, ThreadMessage } from "../../../types/index.js";
2
+ import { CloudMessage } from "assistant-cloud";
3
+ import { ReadonlyJSONObject, ReadonlyJSONValue } from "assistant-stream/utils";
4
+ import type { ExportedMessageRepositoryItem } from "../../../runtime/utils/message-repository.js";
5
+ type AuiV0MessagePart = {
6
+ readonly type: "text";
7
+ readonly text: string;
8
+ } | {
9
+ readonly type: "reasoning";
10
+ readonly text: string;
11
+ } | {
12
+ readonly type: "source";
13
+ readonly sourceType: "url";
14
+ readonly id: string;
15
+ readonly url: string;
16
+ readonly title?: string;
17
+ } | {
18
+ readonly type: "tool-call";
19
+ readonly toolCallId: string;
20
+ readonly toolName: string;
21
+ readonly args: ReadonlyJSONObject;
22
+ readonly result?: ReadonlyJSONValue;
23
+ readonly isError?: true;
24
+ } | {
25
+ readonly type: "tool-call";
26
+ readonly toolCallId: string;
27
+ readonly toolName: string;
28
+ readonly argsText: string;
29
+ readonly result?: ReadonlyJSONValue;
30
+ readonly isError?: true;
31
+ } | {
32
+ readonly type: "image";
33
+ readonly image: string;
34
+ } | {
35
+ readonly type: "file";
36
+ readonly data: string;
37
+ readonly mimeType: string;
38
+ readonly filename?: string;
39
+ };
40
+ type AuiV0Message = {
41
+ readonly role: "assistant" | "user" | "system";
42
+ readonly status?: MessageStatus;
43
+ readonly content: readonly AuiV0MessagePart[];
44
+ readonly metadata: {
45
+ readonly unstable_state?: ReadonlyJSONValue;
46
+ readonly unstable_annotations: readonly ReadonlyJSONValue[];
47
+ readonly unstable_data: readonly ReadonlyJSONValue[];
48
+ readonly steps: readonly {
49
+ readonly usage?: {
50
+ readonly inputTokens: number;
51
+ readonly outputTokens: number;
52
+ };
53
+ }[];
54
+ readonly custom: ReadonlyJSONObject;
55
+ };
56
+ };
57
+ export declare function auiV0Encode(message: ThreadMessage): AuiV0Message;
58
+ export declare function auiV0Decode(cloudMessage: CloudMessage & {
59
+ format: "aui/v0";
60
+ }): ExportedMessageRepositoryItem;
61
+ export {};
62
+ //# sourceMappingURL=auiV0.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auiV0.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,gCAAuB;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,6BAA6B,EAAE,qDAAkD;AAE/F,KAAK,gBAAgB,GACjB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEN,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,cAAc,CAAC,EAAE,iBAAiB,CAAC;QAC5C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAC5D,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;QACrD,QAAQ,CAAC,KAAK,EAAE,SAAS;YACvB,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACf,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;aAC/B,CAAC;SACH,EAAE,CAAC;QACJ,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAuEhE;AAED,wBAAgB,WAAW,CACzB,YAAY,EAAE,YAAY,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAChD,6BAA6B,CAgB/B"}
@@ -0,0 +1,74 @@
1
+ import { fromThreadMessageLike } from "../../../runtime/utils/thread-message-like.js";
2
+ import { isJSONValue } from "../../../utils/json/is-json.js";
3
+ export function auiV0Encode(message) {
4
+ // TODO attachments are currently intentionally ignored
5
+ // info: ID and createdAt are ignored (we use the server value instead)
6
+ const status = message.status?.type === "running"
7
+ ? { type: "incomplete", reason: "cancelled" }
8
+ : message.status;
9
+ return {
10
+ role: message.role,
11
+ content: message.content.map((part) => {
12
+ const type = part.type;
13
+ switch (type) {
14
+ case "text":
15
+ return { type: "text", text: part.text };
16
+ case "reasoning":
17
+ return { type: "reasoning", text: part.text };
18
+ case "source":
19
+ return {
20
+ type: "source",
21
+ sourceType: part.sourceType,
22
+ id: part.id,
23
+ url: part.url,
24
+ ...(part.title ? { title: part.title } : undefined),
25
+ };
26
+ case "tool-call": {
27
+ if (!isJSONValue(part.result)) {
28
+ console.warn(`tool-call result is not JSON! ${JSON.stringify(part)}`);
29
+ }
30
+ return {
31
+ type: "tool-call",
32
+ toolCallId: part.toolCallId,
33
+ toolName: part.toolName,
34
+ ...(JSON.stringify(part.args) === part.argsText
35
+ ? { args: part.args }
36
+ : { argsText: part.argsText }),
37
+ ...(part.result
38
+ ? { result: part.result }
39
+ : undefined),
40
+ ...(part.isError ? { isError: true } : undefined),
41
+ };
42
+ }
43
+ case "image":
44
+ return { type: "image", image: part.image };
45
+ case "file":
46
+ return {
47
+ type: "file",
48
+ data: part.data,
49
+ mimeType: part.mimeType,
50
+ ...(part.filename ? { filename: part.filename } : undefined),
51
+ };
52
+ default: {
53
+ const unhandledType = type;
54
+ throw new Error(`Message part type not supported by aui/v0: ${unhandledType}`);
55
+ }
56
+ }
57
+ }),
58
+ metadata: message.metadata,
59
+ ...(status ? { status } : undefined),
60
+ };
61
+ }
62
+ export function auiV0Decode(cloudMessage) {
63
+ const payload = cloudMessage.content;
64
+ const message = fromThreadMessageLike({
65
+ id: cloudMessage.id,
66
+ createdAt: cloudMessage.created_at,
67
+ ...payload,
68
+ }, cloudMessage.id, { type: "complete", reason: "unknown" });
69
+ return {
70
+ parentId: cloudMessage.parent_id,
71
+ message,
72
+ };
73
+ }
74
+ //# sourceMappingURL=auiV0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auiV0.js","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/auiV0.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { useCloudThreadListAdapter } from "./useCloudThreadListAdapter.js";
2
+ export { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter.js";
3
+ export { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,uCAAoC;AACxE,OAAO,EAAE,qCAAqC,EAAE,gDAA6C;AAC7F,OAAO,EAAE,0BAA0B,EAAE,wCAAqC"}
@@ -0,0 +1,4 @@
1
+ export { useCloudThreadListAdapter } from "./useCloudThreadListAdapter.js";
2
+ export { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter.js";
3
+ export { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,uCAAoC;AACxE,OAAO,EAAE,qCAAqC,EAAE,gDAA6C;AAC7F,OAAO,EAAE,0BAA0B,EAAE,wCAAqC"}
@@ -0,0 +1,13 @@
1
+ import { AssistantCloud } from "assistant-cloud";
2
+ import type { RemoteThreadListAdapter } from "../../../runtimes/remote-thread-list/types.js";
3
+ type ThreadData = {
4
+ externalId: string | undefined;
5
+ };
6
+ type CloudThreadListAdapterOptions = {
7
+ cloud?: AssistantCloud | undefined;
8
+ create?: (() => Promise<ThreadData>) | undefined;
9
+ delete?: ((threadId: string) => Promise<void>) | undefined;
10
+ };
11
+ export declare const useCloudThreadListAdapter: (adapter: CloudThreadListAdapterOptions) => RemoteThreadListAdapter;
12
+ export {};
13
+ //# sourceMappingURL=useCloudThreadListAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCloudThreadListAdapter.d.ts","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,sDAAmD;AAM1F,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAEnC,MAAM,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC;AAOF,eAAO,MAAM,yBAAyB,GACpC,SAAS,6BAA6B,KACrC,uBAoHF,CAAC"}
@@ -0,0 +1,102 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useMemo, useRef, } from "react";
3
+ import { AssistantCloud } from "assistant-cloud";
4
+ import { InMemoryThreadListAdapter } from "../../../runtimes/remote-thread-list/adapter/in-memory.js";
5
+ import { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter.js";
6
+ import { RuntimeAdapterProvider } from "../RuntimeAdapterProvider.js";
7
+ import { CloudFileAttachmentAdapter } from "./CloudFileAttachmentAdapter.js";
8
+ const baseUrl = process?.env?.["NEXT_PUBLIC_ASSISTANT_BASE_URL"];
9
+ const autoCloud = baseUrl
10
+ ? new AssistantCloud({ baseUrl, anonymous: true })
11
+ : undefined;
12
+ export const useCloudThreadListAdapter = (adapter) => {
13
+ const adapterRef = useRef(adapter);
14
+ useEffect(() => {
15
+ adapterRef.current = adapter;
16
+ }, [adapter]);
17
+ const unstable_Provider = useCallback(function Provider({ children }) {
18
+ const history = useAssistantCloudThreadHistoryAdapter({
19
+ get current() {
20
+ return adapterRef.current.cloud ?? autoCloud;
21
+ },
22
+ });
23
+ const cloudInstance = adapterRef.current.cloud ?? autoCloud;
24
+ const attachments = useMemo(() => new CloudFileAttachmentAdapter(cloudInstance), [cloudInstance]);
25
+ const adapters = useMemo(() => ({
26
+ history,
27
+ attachments,
28
+ }), [history, attachments]);
29
+ return (_jsx(RuntimeAdapterProvider, { adapters: adapters, children: children }));
30
+ }, []);
31
+ const cloud = adapter.cloud ?? autoCloud;
32
+ if (!cloud) {
33
+ const ref = adapterRef;
34
+ const inMemory = new InMemoryThreadListAdapter();
35
+ inMemory.initialize = async (threadId) => {
36
+ const result = await ref.current.create?.();
37
+ return { remoteId: threadId, externalId: result?.externalId };
38
+ };
39
+ return inMemory;
40
+ }
41
+ return {
42
+ list: async () => {
43
+ const { threads } = await cloud.threads.list();
44
+ return {
45
+ threads: threads.map((t) => ({
46
+ status: t.is_archived ? "archived" : "regular",
47
+ remoteId: t.id,
48
+ title: t.title,
49
+ externalId: t.external_id ?? undefined,
50
+ })),
51
+ };
52
+ },
53
+ initialize: async () => {
54
+ const createTask = adapter.create?.() ?? Promise.resolve();
55
+ const t = await createTask;
56
+ const external_id = t ? t.externalId : undefined;
57
+ const { thread_id: remoteId } = await cloud.threads.create({
58
+ last_message_at: new Date(),
59
+ external_id,
60
+ });
61
+ return { externalId: external_id, remoteId: remoteId };
62
+ },
63
+ rename: async (threadId, newTitle) => {
64
+ return cloud.threads.update(threadId, { title: newTitle });
65
+ },
66
+ archive: async (threadId) => {
67
+ return cloud.threads.update(threadId, { is_archived: true });
68
+ },
69
+ unarchive: async (threadId) => {
70
+ return cloud.threads.update(threadId, { is_archived: false });
71
+ },
72
+ delete: async (threadId) => {
73
+ await adapter.delete?.(threadId);
74
+ return cloud.threads.delete(threadId);
75
+ },
76
+ generateTitle: async (threadId, messages) => {
77
+ // Filter messages to only include content types the title generator understands
78
+ // (reasoning, source, etc. are not needed for title generation)
79
+ // TODO serialize these to a more efficient format
80
+ const filteredMessages = messages.map((msg) => ({
81
+ ...msg,
82
+ content: msg.content.filter((part) => part.type === "text" || part.type === "tool-call"),
83
+ }));
84
+ return cloud.runs.stream({
85
+ thread_id: threadId,
86
+ assistant_id: "system/thread_title",
87
+ messages: filteredMessages,
88
+ });
89
+ },
90
+ fetch: async (threadId) => {
91
+ const thread = await cloud.threads.get(threadId);
92
+ return {
93
+ status: thread.is_archived ? "archived" : "regular",
94
+ remoteId: thread.id,
95
+ title: thread.title,
96
+ externalId: thread.external_id ?? undefined,
97
+ };
98
+ },
99
+ unstable_Provider,
100
+ };
101
+ };
102
+ //# sourceMappingURL=useCloudThreadListAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCloudThreadListAdapter.js","sourceRoot":"","sources":["../../../../src/react/runtimes/cloud/useCloudThreadListAdapter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ThreadMessage } from "../../types/index.js";
2
+ import type { ThreadState } from "../../runtime/api/thread-runtime.js";
3
+ import { useExternalMessageConverter } from "./external-message-converter.js";
4
+ export declare const createMessageConverter: <T extends object>(callback: useExternalMessageConverter.Callback<T>) => {
5
+ useThreadMessages: ({ messages, isRunning, joinStrategy, metadata, }: {
6
+ messages: T[];
7
+ isRunning: boolean;
8
+ joinStrategy?: "concat-content" | "none" | undefined;
9
+ metadata?: useExternalMessageConverter.Metadata;
10
+ }) => ThreadMessage[];
11
+ toThreadMessages: (messages: T[], isRunning?: boolean, metadata?: useExternalMessageConverter.Metadata) => ThreadMessage[];
12
+ toOriginalMessages: (input: ThreadState | ThreadMessage | ThreadMessage["content"][number]) => unknown[];
13
+ toOriginalMessage: (input: ThreadState | ThreadMessage | ThreadMessage["content"][number]) => {};
14
+ useOriginalMessage: () => {};
15
+ useOriginalMessages: () => unknown[];
16
+ };
17
+ //# sourceMappingURL=createMessageConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessageConverter.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/createMessageConverter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,6BAAoB;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,4CAAyC;AAEpE,OAAO,EACL,2BAA2B,EAE5B,wCAAqC;AAGtC,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,EACrD,UAAU,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;0EAQ5C;QACD,QAAQ,EAAE,CAAC,EAAE,CAAC;QACd,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;QACrD,QAAQ,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC;KACjD;iCAUW,CAAC,EAAE,kCAEH,2BAA2B,CAAC,QAAQ;gCAKvC,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;+BAO9D,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;;;CA4B1E,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import { useAui, useAuiState } from "@assistant-ui/store";
3
+ import { useExternalMessageConverter, convertExternalMessages, } from "./external-message-converter.js";
4
+ import { getExternalStoreMessages } from "../../runtime/utils/external-store-message.js";
5
+ export const createMessageConverter = (callback) => {
6
+ const result = {
7
+ useThreadMessages: ({ messages, isRunning, joinStrategy, metadata, }) => {
8
+ return useExternalMessageConverter({
9
+ callback,
10
+ messages,
11
+ isRunning,
12
+ joinStrategy,
13
+ metadata,
14
+ });
15
+ },
16
+ toThreadMessages: (messages, isRunning = false, metadata = {}) => {
17
+ return convertExternalMessages(messages, callback, isRunning, metadata);
18
+ },
19
+ toOriginalMessages: (input) => {
20
+ const messages = getExternalStoreMessages(input);
21
+ if (messages.length === 0)
22
+ throw new Error("No original messages found");
23
+ return messages;
24
+ },
25
+ toOriginalMessage: (input) => {
26
+ const messages = result.toOriginalMessages(input);
27
+ return messages[0];
28
+ },
29
+ useOriginalMessage: () => {
30
+ const messageMessages = result.useOriginalMessages();
31
+ const first = messageMessages[0];
32
+ return first;
33
+ },
34
+ useOriginalMessages: () => {
35
+ const aui = useAui();
36
+ const partMessages = useAuiState((s) => {
37
+ if (aui.part.source)
38
+ return getExternalStoreMessages(s.part);
39
+ return undefined;
40
+ });
41
+ const messageMessages = useAuiState((s) => getExternalStoreMessages(s.message));
42
+ const messages = partMessages ?? messageMessages;
43
+ if (messages.length === 0)
44
+ throw new Error("No original messages found");
45
+ return messages;
46
+ },
47
+ };
48
+ return result;
49
+ };
50
+ //# sourceMappingURL=createMessageConverter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMessageConverter.js","sourceRoot":"","sources":["../../../src/react/runtimes/createMessageConverter.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,GACxB,wCAAqC;AACtC,OAAO,EAAE,wBAAwB,EAAE,sDAAmD;AAEtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAiD,EACjD,EAAE;IACF,MAAM,MAAM,GAAG;QACb,iBAAiB,EAAE,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,QAAQ,GAMT,EAAE,EAAE;YACH,OAAO,2BAA2B,CAAI;gBACpC,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,YAAY;gBACZ,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QACD,gBAAgB,EAAE,CAChB,QAAa,EACb,SAAS,GAAG,KAAK,EACjB,WAAiD,EAAE,EACnD,EAAE;YACF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1E,CAAC;QACD,kBAAkB,EAAE,CAClB,KAAqE,EACrE,EAAE;YACF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,iBAAiB,EAAE,CACjB,KAAqE,EACrE,EAAE;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;QACtB,CAAC;QACD,kBAAkB,EAAE,GAAG,EAAE;YACvB,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,mBAAmB,EAAE,GAAG,EAAE;YACxB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE;gBACrC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM;oBAAE,OAAO,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7D,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,WAAW,CAAM,CAAC,CAAC,EAAE,EAAE,CAC7C,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CACpC,CAAC;YAEF,MAAM,QAAQ,GAAG,YAAY,IAAI,eAAe,CAAC;YACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type ThreadMessageLike } from "../../runtime/utils/thread-message-like.js";
2
+ import type { ToolExecutionStatus } from "./useToolInvocations.js";
3
+ import type { ReadonlyJSONValue } from "assistant-stream/utils";
4
+ import type { MessageTiming, ThreadMessage } from "../../types/index.js";
5
+ export declare namespace useExternalMessageConverter {
6
+ type Message = (ThreadMessageLike & {
7
+ readonly convertConfig?: {
8
+ readonly joinStrategy?: "concat-content" | "none";
9
+ };
10
+ }) | {
11
+ role: "tool";
12
+ toolCallId: string;
13
+ toolName?: string | undefined;
14
+ result: any;
15
+ artifact?: any;
16
+ isError?: boolean;
17
+ messages?: readonly ThreadMessage[];
18
+ };
19
+ type Metadata = {
20
+ readonly toolStatuses?: Record<string, ToolExecutionStatus>;
21
+ readonly error?: ReadonlyJSONValue;
22
+ readonly messageTiming?: Record<string, MessageTiming>;
23
+ };
24
+ type Callback<T> = (message: T, metadata: Metadata) => Message | Message[];
25
+ }
26
+ export declare const convertExternalMessages: <T extends WeakKey>(messages: T[], callback: useExternalMessageConverter.Callback<T>, isRunning: boolean, metadata: useExternalMessageConverter.Metadata) => ThreadMessage[];
27
+ export declare const useExternalMessageConverter: <T extends WeakKey>({ callback, messages, isRunning, joinStrategy, metadata, }: {
28
+ callback: useExternalMessageConverter.Callback<T>;
29
+ messages: T[];
30
+ isRunning: boolean;
31
+ joinStrategy?: "concat-content" | "none" | undefined;
32
+ metadata?: useExternalMessageConverter.Metadata | undefined;
33
+ }) => ThreadMessage[];
34
+ //# sourceMappingURL=external-message-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-message-converter.d.ts","sourceRoot":"","sources":["../../../src/react/runtimes/external-message-converter.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,iBAAiB,EACvB,mDAAgD;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gCAA6B;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EAEd,6BAAoB;AAErB,yBAAiB,2BAA2B,CAAC;IAC3C,KAAY,OAAO,GACf,CAAC,iBAAiB,GAAG;QACnB,QAAQ,CAAC,aAAa,CAAC,EAAE;YACvB,QAAQ,CAAC,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;SACnD,CAAC;KACH,CAAC,GACF;QACE,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC;QACZ,QAAQ,CAAC,EAAE,GAAG,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;KACrC,CAAC;IAEN,KAAY,QAAQ,GAAG;QACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;QACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACxD,CAAC;IAEF,KAAY,QAAQ,CAAC,CAAC,IAAI,CACxB,OAAO,EAAE,CAAC,EACV,QAAQ,EAAE,QAAQ,KACf,OAAO,GAAG,OAAO,EAAE,CAAC;CAC1B;AA2QD,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,OAAO,EACvD,UAAU,CAAC,EAAE,EACb,UAAU,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,EACjD,WAAW,OAAO,EAClB,UAAU,2BAA2B,CAAC,QAAQ,oBA4C/C,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,CAAC,SAAS,OAAO,EAAE,4DAM5D;IACD,QAAQ,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAClD,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,EAAE,2BAA2B,CAAC,QAAQ,GAAG,SAAS,CAAC;CAC7D,oBAkGA,CAAC"}