@assistant-ui/core 0.1.1 → 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.
- package/dist/model-context/frame/provider.d.ts.map +1 -1
- package/dist/model-context/frame/provider.js +2 -4
- package/dist/model-context/frame/provider.js.map +1 -1
- package/dist/react/RuntimeAdapter.js +4 -1
- package/dist/react/RuntimeAdapter.js.map +1 -1
- package/dist/react/index.d.ts +2 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/model-context/toolbox.d.ts +7 -1
- package/dist/react/model-context/toolbox.d.ts.map +1 -1
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts +97 -0
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js +111 -0
- package/dist/react/runtimes/RemoteThreadListHookInstanceManager.js.map +1 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts +115 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js +444 -0
- package/dist/react/runtimes/RemoteThreadListThreadListRuntimeCore.js.map +1 -0
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts +18 -0
- package/dist/react/runtimes/RuntimeAdapterProvider.d.ts.map +1 -0
- package/dist/react/runtimes/RuntimeAdapterProvider.js +14 -0
- package/dist/react/runtimes/RuntimeAdapterProvider.js.map +1 -0
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js +528 -0
- package/dist/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts +15 -0
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js +83 -0
- package/dist/react/runtimes/cloud/CloudFileAttachmentAdapter.js.map +1 -0
- package/dist/react/runtimes/cloud/auiV0.d.ts +62 -0
- package/dist/react/runtimes/cloud/auiV0.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/auiV0.js +74 -0
- package/dist/react/runtimes/cloud/auiV0.js.map +1 -0
- package/dist/react/runtimes/cloud/index.d.ts +4 -0
- package/dist/react/runtimes/cloud/index.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/index.js +4 -0
- package/dist/react/runtimes/cloud/index.js.map +1 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts +13 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.d.ts.map +1 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js +102 -0
- package/dist/react/runtimes/cloud/useCloudThreadListAdapter.js.map +1 -0
- package/dist/react/runtimes/createMessageConverter.d.ts +17 -0
- package/dist/react/runtimes/createMessageConverter.d.ts.map +1 -0
- package/dist/react/runtimes/createMessageConverter.js +50 -0
- package/dist/react/runtimes/createMessageConverter.js.map +1 -0
- package/dist/react/runtimes/external-message-converter.d.ts +34 -0
- package/dist/react/runtimes/external-message-converter.d.ts.map +1 -0
- package/dist/react/runtimes/external-message-converter.js +309 -0
- package/dist/react/runtimes/external-message-converter.js.map +1 -0
- package/dist/react/runtimes/index.d.ts +10 -0
- package/dist/react/runtimes/index.d.ts.map +1 -0
- package/dist/react/runtimes/index.js +10 -0
- package/dist/react/runtimes/index.js.map +1 -0
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts +4 -0
- package/dist/react/runtimes/useExternalStoreRuntime.d.ts.map +1 -0
- package/dist/react/runtimes/useExternalStoreRuntime.js +19 -0
- package/dist/react/runtimes/useExternalStoreRuntime.js.map +1 -0
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts +4 -0
- package/dist/react/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -0
- package/dist/react/runtimes/useRemoteThreadListRuntime.js +48 -0
- package/dist/react/runtimes/useRemoteThreadListRuntime.js.map +1 -0
- package/dist/react/runtimes/useToolInvocations.d.ts +38 -0
- package/dist/react/runtimes/useToolInvocations.d.ts.map +1 -0
- package/dist/react/runtimes/useToolInvocations.js +411 -0
- package/dist/react/runtimes/useToolInvocations.js.map +1 -0
- package/dist/react/types/store-augmentation.d.ts +0 -1
- package/dist/react/types/store-augmentation.d.ts.map +1 -1
- package/dist/react/types/store-augmentation.js +1 -1
- package/dist/react/types/store-augmentation.js.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
- package/dist/runtime/base/base-composer-runtime-core.js +2 -0
- package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
- package/dist/store/index.d.ts +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -2
- package/dist/store/index.js.map +1 -1
- package/dist/utils/json/is-json-equal.d.ts +2 -0
- package/dist/utils/json/is-json-equal.d.ts.map +1 -0
- package/dist/utils/json/is-json-equal.js +31 -0
- package/dist/utils/json/is-json-equal.js.map +1 -0
- package/dist/utils/json/is-json.d.ts +6 -0
- package/dist/utils/json/is-json.d.ts.map +1 -0
- package/dist/utils/json/is-json.js +33 -0
- package/dist/utils/json/is-json.js.map +1 -0
- package/package.json +10 -9
- package/src/model-context/frame/provider.ts +2 -6
- package/src/react/RuntimeAdapter.ts +5 -1
- package/src/react/index.ts +2 -1
- package/src/react/model-context/toolbox.ts +7 -3
- package/src/react/runtimes/RemoteThreadListHookInstanceManager.tsx +176 -0
- package/src/react/runtimes/RemoteThreadListThreadListRuntimeCore.tsx +534 -0
- package/src/react/runtimes/RuntimeAdapterProvider.tsx +40 -0
- package/src/react/runtimes/cloud/AssistantCloudThreadHistoryAdapter.ts +785 -0
- package/src/react/runtimes/cloud/CloudFileAttachmentAdapter.ts +101 -0
- package/src/react/runtimes/cloud/auiV0.ts +160 -0
- package/src/react/runtimes/cloud/index.ts +3 -0
- package/src/react/runtimes/cloud/useCloudThreadListAdapter.tsx +152 -0
- package/src/react/runtimes/createMessageConverter.ts +77 -0
- package/src/react/runtimes/external-message-converter.ts +487 -0
- package/src/react/runtimes/index.ts +30 -0
- package/src/react/runtimes/useExternalStoreRuntime.ts +27 -0
- package/src/react/runtimes/useRemoteThreadListRuntime.ts +76 -0
- package/src/react/runtimes/useToolInvocations.ts +594 -0
- package/src/react/types/store-augmentation.ts +0 -2
- package/src/runtime/base/base-composer-runtime-core.ts +2 -0
- package/src/store/index.ts +1 -2
- package/src/utils/json/is-json-equal.ts +48 -0
- 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"}
|