@economic/agents-react 1.1.3 → 1.1.5
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 +53 -48
- package/dist/index.mjs +65 -64
- 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,57 @@ declare function useChatAgent<ToolContext extends Record<string, unknown>>(optio
|
|
|
287
288
|
};
|
|
288
289
|
//#endregion
|
|
289
290
|
//#region src/useAssistant.d.ts
|
|
290
|
-
/**
|
|
291
|
-
type
|
|
292
|
-
|
|
291
|
+
/** Chat summary returned by the assistant's `getChats` RPC. */
|
|
292
|
+
type ChatSummary = {
|
|
293
|
+
chatId: string;
|
|
293
294
|
title?: string;
|
|
294
295
|
summary?: string;
|
|
295
296
|
created_at: number;
|
|
296
297
|
updated_at: number;
|
|
297
298
|
};
|
|
298
|
-
interface UseAssistantOptions<ToolContext extends Record<string, unknown> = Record<string, unknown>> extends Omit<UseChatOptions<ToolContext>, "
|
|
299
|
-
userId: string;
|
|
300
|
-
initialChatId?: string;
|
|
301
|
-
}
|
|
299
|
+
interface UseAssistantOptions<ToolContext extends Record<string, unknown> = Record<string, unknown>> extends Omit<UseChatOptions<ToolContext>, "actorId" | "getInitialMessages"> {}
|
|
302
300
|
declare function useAssistant<ToolContext extends Record<string, unknown>>(options: UseAssistantOptions<ToolContext>): {
|
|
303
|
-
|
|
301
|
+
currentChatName: string | undefined;
|
|
304
302
|
status: AgentConnectionStatus;
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
303
|
+
assistant: {
|
|
304
|
+
getChats: () => Promise<ChatSummary[]>;
|
|
305
|
+
createChat: () => Promise<string>;
|
|
306
|
+
openChat: (chatId: string) => void;
|
|
307
|
+
deleteChat: (chatId: string) => Promise<void>;
|
|
308
|
+
};
|
|
309
|
+
chat: {
|
|
310
|
+
status: AgentConnectionStatus;
|
|
311
|
+
agent: Omit<PartySocket, "path"> & {
|
|
313
312
|
agent: string;
|
|
314
313
|
name: string;
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
314
|
+
path: ReadonlyArray<{
|
|
315
|
+
agent: string;
|
|
316
|
+
name: string;
|
|
317
|
+
}>;
|
|
318
|
+
identified: boolean;
|
|
319
|
+
ready: Promise<void>;
|
|
320
|
+
state: AgentConnectionState | undefined;
|
|
321
|
+
setState: (state: AgentConnectionState) => void;
|
|
322
|
+
call: <T = unknown>(method: string, args?: unknown[], options?: _$agents_client0.CallOptions | _$agents_client0.StreamOptions) => Promise<T>;
|
|
323
|
+
stub: _$agents_client0.UntypedAgentStub;
|
|
324
|
+
getHttpUrl: () => string;
|
|
325
|
+
};
|
|
326
|
+
chat: Omit<_$_ai_sdk_react0.UseChatHelpers<_$ai.UIMessage<unknown, _$ai.UIDataTypes, _$ai.UITools>>, "addToolOutput"> & {
|
|
327
|
+
clearHistory: () => void;
|
|
328
|
+
addToolOutput: (opts: {
|
|
329
|
+
toolCallId: string;
|
|
330
|
+
toolName?: string;
|
|
331
|
+
output?: unknown;
|
|
332
|
+
state?: "output-available" | "output-error";
|
|
333
|
+
errorText?: string;
|
|
334
|
+
}) => void;
|
|
335
|
+
isServerStreaming: boolean;
|
|
336
|
+
isStreaming: boolean;
|
|
337
|
+
isToolContinuation: boolean;
|
|
338
|
+
};
|
|
339
|
+
rateMessage: (messageId: string, rating: number, comment?: string) => Promise<unknown>;
|
|
340
|
+
getMessageRatings: () => Promise<unknown>;
|
|
323
341
|
};
|
|
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
342
|
};
|
|
338
343
|
//#endregion
|
|
339
|
-
export { AgentConnectionState, AgentConnectionStatus, AgentConnectionType,
|
|
344
|
+
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,72 +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 getConversations = async () => {
|
|
40
|
-
return await assistant.call("getConversations");
|
|
41
|
-
};
|
|
42
|
-
const createConversation = async () => {
|
|
43
|
-
const chatId = await assistant.call("createConversation");
|
|
44
|
-
setChatId(chatId);
|
|
45
|
-
await getConversations();
|
|
46
|
-
return chatId;
|
|
47
|
-
};
|
|
48
|
-
const openConversation = (chatId) => {
|
|
49
|
-
setChatId(chatId);
|
|
50
|
-
};
|
|
51
|
-
const deleteConversation = async (chatId) => {
|
|
52
|
-
await assistant.call("deleteConversation", [chatId]);
|
|
53
|
-
setChatId(void 0);
|
|
54
|
-
await getConversations();
|
|
55
|
-
};
|
|
29
|
+
//#region src/useChat.ts
|
|
30
|
+
function useChat(options) {
|
|
31
|
+
const { toolContext, welcomeMessage, ...agentOptions } = options;
|
|
56
32
|
const agent = useAgent({
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
agentName,
|
|
60
|
-
id: userId,
|
|
61
|
-
authToken,
|
|
62
|
-
sub: chatId ? [{
|
|
63
|
-
agent: assistant.state?.subAgentName ?? "",
|
|
64
|
-
name: chatId
|
|
65
|
-
}] : void 0,
|
|
66
|
-
...agentOptions
|
|
33
|
+
...agentOptions,
|
|
34
|
+
enabled: agentOptions.enabled ?? !!agentOptions.name
|
|
67
35
|
});
|
|
68
|
-
const
|
|
36
|
+
const status = agent.state?.status ?? "connecting";
|
|
69
37
|
const chat = useAgentChat({
|
|
70
38
|
agent,
|
|
71
39
|
body: toolContext ?? {},
|
|
72
|
-
getInitialMessages:
|
|
73
|
-
});
|
|
74
|
-
return {
|
|
75
|
-
chatId,
|
|
76
|
-
status: (chatId ? agent.state?.status : assistant.state?.status) ?? "connecting",
|
|
77
|
-
getConversations,
|
|
78
|
-
createConversation,
|
|
79
|
-
openConversation,
|
|
80
|
-
deleteConversation,
|
|
81
|
-
agent,
|
|
82
|
-
chat: isChatReady ? chat : void 0
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
//#endregion
|
|
86
|
-
//#region src/useChatAgent.ts
|
|
87
|
-
function useChatAgent(options) {
|
|
88
|
-
const { toolContext, welcomeMessage, ...agentOptions } = options;
|
|
89
|
-
const agent = useAgent(agentOptions);
|
|
90
|
-
const chat = useAgentChat({
|
|
91
|
-
agent,
|
|
92
|
-
body: toolContext ?? {}
|
|
40
|
+
getInitialMessages: !!agentOptions.name && status === "connected" ? void 0 : null
|
|
93
41
|
});
|
|
94
|
-
const status = agent.state?.status ?? "connecting";
|
|
95
42
|
const hasSentWelcome = useRef(false);
|
|
96
43
|
useEffect(() => {
|
|
97
44
|
if (welcomeMessage && status === "connected" && chat.messages.length === 0 && !hasSentWelcome.current) {
|
|
@@ -129,4 +76,58 @@ function useChatAgent(options) {
|
|
|
129
76
|
};
|
|
130
77
|
}
|
|
131
78
|
//#endregion
|
|
132
|
-
|
|
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
|
+
chatId: 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 };
|