@economic/agents-react 1.1.4 → 1.1.6
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/index.d.mts +52 -48
- package/dist/index.mjs +65 -71
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -217,21 +217,21 @@ type AgentConnectionState = {
|
|
|
217
217
|
//#endregion
|
|
218
218
|
//#region src/useAgent.d.ts
|
|
219
219
|
interface UseAgentOptions {
|
|
220
|
+
enabled?: boolean;
|
|
220
221
|
host: string;
|
|
221
222
|
agentName: string;
|
|
222
|
-
|
|
223
|
+
name: string;
|
|
224
|
+
actorId?: string;
|
|
223
225
|
sub?: {
|
|
224
226
|
agent: string;
|
|
225
227
|
name: string;
|
|
226
228
|
}[];
|
|
229
|
+
authToken?: string;
|
|
227
230
|
onOpen?: (event: Event) => void;
|
|
228
231
|
onClose?: (event: CloseEvent) => void;
|
|
229
232
|
onError?: (event: ErrorEvent) => void;
|
|
230
|
-
authToken?: string;
|
|
231
|
-
userId?: string;
|
|
232
|
-
id: string;
|
|
233
233
|
}
|
|
234
|
-
declare function useAgent
|
|
234
|
+
declare function useAgent(options: UseAgentOptions): Omit<PartySocket, "path"> & {
|
|
235
235
|
agent: string;
|
|
236
236
|
name: string;
|
|
237
237
|
path: ReadonlyArray<{
|
|
@@ -240,19 +240,20 @@ declare function useAgent<T extends AgentConnectionState>(options: UseAgentOptio
|
|
|
240
240
|
}>;
|
|
241
241
|
identified: boolean;
|
|
242
242
|
ready: Promise<void>;
|
|
243
|
-
state:
|
|
244
|
-
setState: (state:
|
|
245
|
-
call: <
|
|
243
|
+
state: AgentConnectionState | undefined;
|
|
244
|
+
setState: (state: AgentConnectionState) => void;
|
|
245
|
+
call: <T = unknown>(method: string, args?: unknown[], options?: _$agents_client0.CallOptions | _$agents_client0.StreamOptions) => Promise<T>;
|
|
246
246
|
stub: _$agents_client0.UntypedAgentStub;
|
|
247
247
|
getHttpUrl: () => string;
|
|
248
248
|
};
|
|
249
249
|
//#endregion
|
|
250
|
-
//#region src/
|
|
250
|
+
//#region src/useChat.d.ts
|
|
251
251
|
interface UseChatOptions<ToolContext extends Record<string, unknown>> extends UseAgentOptions {
|
|
252
|
+
getInitialMessages?: undefined | null;
|
|
252
253
|
toolContext?: ToolContext;
|
|
253
254
|
welcomeMessage?: string;
|
|
254
255
|
}
|
|
255
|
-
declare function
|
|
256
|
+
declare function useChat<ToolContext extends Record<string, unknown>>(options: UseChatOptions<ToolContext>): {
|
|
256
257
|
status: AgentConnectionStatus;
|
|
257
258
|
agent: Omit<PartySocket, "path"> & {
|
|
258
259
|
agent: string;
|
|
@@ -287,53 +288,56 @@ declare function useChatAgent<ToolContext extends Record<string, unknown>>(optio
|
|
|
287
288
|
};
|
|
288
289
|
//#endregion
|
|
289
290
|
//#region src/useAssistant.d.ts
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
chatId: string;
|
|
291
|
+
type ChatSummary = {
|
|
292
|
+
name: string;
|
|
293
293
|
title?: string;
|
|
294
294
|
summary?: string;
|
|
295
295
|
created_at: number;
|
|
296
296
|
updated_at: number;
|
|
297
297
|
};
|
|
298
|
-
interface UseAssistantOptions<ToolContext extends Record<string, unknown> = Record<string, unknown>> extends Omit<UseChatOptions<ToolContext>, "
|
|
299
|
-
userId: string;
|
|
300
|
-
initialChatId?: string;
|
|
301
|
-
}
|
|
298
|
+
interface UseAssistantOptions<ToolContext extends Record<string, unknown> = Record<string, unknown>> extends Omit<UseChatOptions<ToolContext>, "actorId" | "getInitialMessages"> {}
|
|
302
299
|
declare function useAssistant<ToolContext extends Record<string, unknown>>(options: UseAssistantOptions<ToolContext>): {
|
|
303
|
-
|
|
300
|
+
currentChatName: string | undefined;
|
|
304
301
|
status: AgentConnectionStatus;
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
302
|
+
assistant: {
|
|
303
|
+
getChats: () => Promise<ChatSummary[]>;
|
|
304
|
+
createChat: () => Promise<string>;
|
|
305
|
+
openChat: (chatId: string) => void;
|
|
306
|
+
deleteChat: (chatId: string) => Promise<void>;
|
|
307
|
+
};
|
|
308
|
+
chat: {
|
|
309
|
+
status: AgentConnectionStatus;
|
|
310
|
+
agent: Omit<PartySocket, "path"> & {
|
|
313
311
|
agent: string;
|
|
314
312
|
name: string;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
313
|
+
path: ReadonlyArray<{
|
|
314
|
+
agent: string;
|
|
315
|
+
name: string;
|
|
316
|
+
}>;
|
|
317
|
+
identified: boolean;
|
|
318
|
+
ready: Promise<void>;
|
|
319
|
+
state: AgentConnectionState | undefined;
|
|
320
|
+
setState: (state: AgentConnectionState) => void;
|
|
321
|
+
call: <T = unknown>(method: string, args?: unknown[], options?: _$agents_client0.CallOptions | _$agents_client0.StreamOptions) => Promise<T>;
|
|
322
|
+
stub: _$agents_client0.UntypedAgentStub;
|
|
323
|
+
getHttpUrl: () => string;
|
|
324
|
+
};
|
|
325
|
+
chat: Omit<_$_ai_sdk_react0.UseChatHelpers<_$ai.UIMessage<unknown, _$ai.UIDataTypes, _$ai.UITools>>, "addToolOutput"> & {
|
|
326
|
+
clearHistory: () => void;
|
|
327
|
+
addToolOutput: (opts: {
|
|
328
|
+
toolCallId: string;
|
|
329
|
+
toolName?: string;
|
|
330
|
+
output?: unknown;
|
|
331
|
+
state?: "output-available" | "output-error";
|
|
332
|
+
errorText?: string;
|
|
333
|
+
}) => void;
|
|
334
|
+
isServerStreaming: boolean;
|
|
335
|
+
isStreaming: boolean;
|
|
336
|
+
isToolContinuation: boolean;
|
|
337
|
+
};
|
|
338
|
+
rateMessage: (messageId: string, rating: number, comment?: string) => Promise<unknown>;
|
|
339
|
+
getMessageRatings: () => Promise<unknown>;
|
|
323
340
|
};
|
|
324
|
-
chat: (Omit<_$_ai_sdk_react0.UseChatHelpers<_$ai.UIMessage<unknown, _$ai.UIDataTypes, _$ai.UITools>>, "addToolOutput"> & {
|
|
325
|
-
clearHistory: () => void;
|
|
326
|
-
addToolOutput: (opts: {
|
|
327
|
-
toolCallId: string;
|
|
328
|
-
toolName?: string;
|
|
329
|
-
output?: unknown;
|
|
330
|
-
state?: "output-available" | "output-error";
|
|
331
|
-
errorText?: string;
|
|
332
|
-
}) => void;
|
|
333
|
-
isServerStreaming: boolean;
|
|
334
|
-
isStreaming: boolean;
|
|
335
|
-
isToolContinuation: boolean;
|
|
336
|
-
}) | undefined;
|
|
337
341
|
};
|
|
338
342
|
//#endregion
|
|
339
|
-
export { AgentConnectionState, AgentConnectionStatus, AgentConnectionType,
|
|
343
|
+
export { type AgentConnectionState, type AgentConnectionStatus, type AgentConnectionType, type ChatSummary, useAgent, useAssistant, useChat };
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useAgent as useAgent$1 } from "agents/react";
|
|
2
|
-
import { useAgentChat } from "@cloudflare/ai-chat/react";
|
|
3
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
|
+
import { useAgentChat } from "@cloudflare/ai-chat/react";
|
|
4
4
|
//#region src/util.ts
|
|
5
5
|
function getTokenArgs(authToken) {
|
|
6
6
|
if (!authToken) return {};
|
|
@@ -12,12 +12,12 @@ function getTokenArgs(authToken) {
|
|
|
12
12
|
//#endregion
|
|
13
13
|
//#region src/useAgent.ts
|
|
14
14
|
function useAgent(options) {
|
|
15
|
-
const { host, agentName,
|
|
15
|
+
const { enabled, host, agentName, actorId, name, sub, authToken, onError, onOpen, onClose } = options;
|
|
16
16
|
return useAgent$1({
|
|
17
17
|
enabled,
|
|
18
18
|
host,
|
|
19
19
|
agent: agentName,
|
|
20
|
-
name:
|
|
20
|
+
name: actorId ? `${actorId}:${name}` : name,
|
|
21
21
|
sub,
|
|
22
22
|
onOpen,
|
|
23
23
|
onClose,
|
|
@@ -26,79 +26,19 @@ function useAgent(options) {
|
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
//#endregion
|
|
29
|
-
//#region src/
|
|
30
|
-
function
|
|
31
|
-
const {
|
|
32
|
-
const [chatId, setChatId] = useState();
|
|
33
|
-
const assistant = useAgent({
|
|
34
|
-
host,
|
|
35
|
-
agentName,
|
|
36
|
-
id: userId,
|
|
37
|
-
authToken
|
|
38
|
-
});
|
|
39
|
-
const getChats = async () => {
|
|
40
|
-
return (await assistant.call("getChats")).map((chat) => {
|
|
41
|
-
const c = {
|
|
42
|
-
...chat,
|
|
43
|
-
chatId: chat.durable_object_name
|
|
44
|
-
};
|
|
45
|
-
delete c.durable_object_name;
|
|
46
|
-
return c;
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
|
-
const createChat = async () => {
|
|
50
|
-
const chatId = await assistant.call("createChat");
|
|
51
|
-
setChatId(chatId);
|
|
52
|
-
await getChats();
|
|
53
|
-
return chatId;
|
|
54
|
-
};
|
|
55
|
-
const openChat = (chatId) => {
|
|
56
|
-
setChatId(chatId);
|
|
57
|
-
};
|
|
58
|
-
const deleteChat = async (chatId) => {
|
|
59
|
-
await assistant.call("deleteChat", [chatId]);
|
|
60
|
-
setChatId(void 0);
|
|
61
|
-
await getChats();
|
|
62
|
-
};
|
|
29
|
+
//#region src/useChat.ts
|
|
30
|
+
function useChat(options) {
|
|
31
|
+
const { toolContext, welcomeMessage, ...agentOptions } = options;
|
|
63
32
|
const agent = useAgent({
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
agentName,
|
|
67
|
-
id: userId,
|
|
68
|
-
authToken,
|
|
69
|
-
sub: chatId ? [{
|
|
70
|
-
agent: assistant.state?.subAgentName ?? "",
|
|
71
|
-
name: chatId
|
|
72
|
-
}] : void 0,
|
|
73
|
-
...agentOptions
|
|
33
|
+
...agentOptions,
|
|
34
|
+
enabled: agentOptions.enabled ?? !!agentOptions.name
|
|
74
35
|
});
|
|
75
|
-
const
|
|
36
|
+
const status = agent.state?.status ?? "connecting";
|
|
76
37
|
const chat = useAgentChat({
|
|
77
38
|
agent,
|
|
78
39
|
body: toolContext ?? {},
|
|
79
|
-
getInitialMessages:
|
|
80
|
-
});
|
|
81
|
-
return {
|
|
82
|
-
chatId,
|
|
83
|
-
status: (chatId ? agent.state?.status : assistant.state?.status) ?? "connecting",
|
|
84
|
-
getChats,
|
|
85
|
-
createChat,
|
|
86
|
-
openChat,
|
|
87
|
-
deleteChat,
|
|
88
|
-
agent,
|
|
89
|
-
chat: isChatReady ? chat : void 0
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
//#endregion
|
|
93
|
-
//#region src/useChatAgent.ts
|
|
94
|
-
function useChatAgent(options) {
|
|
95
|
-
const { toolContext, welcomeMessage, ...agentOptions } = options;
|
|
96
|
-
const agent = useAgent(agentOptions);
|
|
97
|
-
const chat = useAgentChat({
|
|
98
|
-
agent,
|
|
99
|
-
body: toolContext ?? {}
|
|
40
|
+
getInitialMessages: !!agentOptions.name && status === "connected" ? void 0 : null
|
|
100
41
|
});
|
|
101
|
-
const status = agent.state?.status ?? "connecting";
|
|
102
42
|
const hasSentWelcome = useRef(false);
|
|
103
43
|
useEffect(() => {
|
|
104
44
|
if (welcomeMessage && status === "connected" && chat.messages.length === 0 && !hasSentWelcome.current) {
|
|
@@ -136,4 +76,58 @@ function useChatAgent(options) {
|
|
|
136
76
|
};
|
|
137
77
|
}
|
|
138
78
|
//#endregion
|
|
139
|
-
|
|
79
|
+
//#region src/useAssistant.ts
|
|
80
|
+
function useAssistant(options) {
|
|
81
|
+
const { toolContext, welcomeMessage, ...agentOptions } = options;
|
|
82
|
+
const [chatId, setChatId] = useState();
|
|
83
|
+
const assistant = useAgent(agentOptions);
|
|
84
|
+
const getChats = async () => {
|
|
85
|
+
return (await assistant.call("getChats")).map((chat) => {
|
|
86
|
+
const c = {
|
|
87
|
+
...chat,
|
|
88
|
+
name: chat.durable_object_name
|
|
89
|
+
};
|
|
90
|
+
delete c.durable_object_name;
|
|
91
|
+
return c;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
const createChat = async () => {
|
|
95
|
+
const chatId = await assistant.call("createChat");
|
|
96
|
+
setChatId(chatId);
|
|
97
|
+
await getChats();
|
|
98
|
+
return chatId;
|
|
99
|
+
};
|
|
100
|
+
const openChat = (chatId) => {
|
|
101
|
+
setChatId(chatId);
|
|
102
|
+
};
|
|
103
|
+
const deleteChat = async (chatId) => {
|
|
104
|
+
await assistant.call("deleteChat", [chatId]);
|
|
105
|
+
setChatId(void 0);
|
|
106
|
+
await getChats();
|
|
107
|
+
};
|
|
108
|
+
const isChatReady = !!chatId && assistant.state?.status === "connected";
|
|
109
|
+
const chat = useChat({
|
|
110
|
+
...agentOptions,
|
|
111
|
+
enabled: !!chatId,
|
|
112
|
+
sub: chatId ? [{
|
|
113
|
+
agent: assistant.state?.subAgentName ?? "",
|
|
114
|
+
name: chatId
|
|
115
|
+
}] : void 0,
|
|
116
|
+
getInitialMessages: isChatReady ? void 0 : null,
|
|
117
|
+
toolContext,
|
|
118
|
+
welcomeMessage
|
|
119
|
+
});
|
|
120
|
+
return {
|
|
121
|
+
currentChatName: chatId,
|
|
122
|
+
status: (chatId ? chat.agent.state?.status : assistant.state?.status) ?? "connecting",
|
|
123
|
+
assistant: {
|
|
124
|
+
getChats,
|
|
125
|
+
createChat,
|
|
126
|
+
openChat,
|
|
127
|
+
deleteChat
|
|
128
|
+
},
|
|
129
|
+
chat
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { useAgent, useAssistant, useChat };
|