@agentic-kit/react 0.2.0 → 0.3.0
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/esm/use-chat.d.ts +2 -1
- package/esm/use-chat.js +9 -0
- package/package.json +4 -4
- package/use-chat.d.ts +2 -1
- package/use-chat.js +9 -0
package/esm/use-chat.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentEvent, AgentToolResult } from '@agentic-kit/agent';
|
|
2
|
-
import type { AssistantMessage, Message } from 'agentic-kit';
|
|
2
|
+
import type { AssistantMessage, Message, Usage } from 'agentic-kit';
|
|
3
3
|
export type ToolDecisionPendingEvent = Extract<AgentEvent, {
|
|
4
4
|
type: 'tool_decision_pending';
|
|
5
5
|
}>;
|
|
@@ -33,6 +33,7 @@ export interface UseChatResult {
|
|
|
33
33
|
pendingDecisions: ReadonlyMap<string, ToolDecisionPendingEvent>;
|
|
34
34
|
executingToolCallIds: ReadonlySet<string>;
|
|
35
35
|
error: unknown;
|
|
36
|
+
usage: Usage | null;
|
|
36
37
|
send: (input: string | Message) => Promise<void>;
|
|
37
38
|
sendMessages: (messages: Message[]) => Promise<void>;
|
|
38
39
|
setMessages: (msgs: Message[] | ((prev: Message[]) => Message[])) => void;
|
package/esm/use-chat.js
CHANGED
|
@@ -45,6 +45,7 @@ export function useChat(options) {
|
|
|
45
45
|
const [pendingDecisions, setPendingDecisions] = useState(() => rederivePendingDecisions(options.initialMessages ?? []));
|
|
46
46
|
const [executingToolCallIds, setExecutingToolCallIds] = useState(() => new Set());
|
|
47
47
|
const [error, setError] = useState(undefined);
|
|
48
|
+
const [usage, setUsage] = useState(null);
|
|
48
49
|
const messagesRef = useRef(messages);
|
|
49
50
|
useEffect(() => {
|
|
50
51
|
messagesRef.current = messages;
|
|
@@ -76,6 +77,7 @@ export function useChat(options) {
|
|
|
76
77
|
setPendingDecisions(new Map());
|
|
77
78
|
setExecutingToolCallIds(new Set());
|
|
78
79
|
setStreamingMessage(null);
|
|
80
|
+
setUsage(null);
|
|
79
81
|
if (optimisticUserMessage) {
|
|
80
82
|
setMessagesState((prev) => [...prev, optimisticUserMessage]);
|
|
81
83
|
}
|
|
@@ -180,8 +182,13 @@ export function useChat(options) {
|
|
|
180
182
|
opts.onDecisionPending?.(event);
|
|
181
183
|
break;
|
|
182
184
|
}
|
|
185
|
+
case 'turn_end': {
|
|
186
|
+
setUsage((prev) => prev?.totalTokens === event.totalUsage.totalTokens ? prev : event.totalUsage);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
183
189
|
case 'agent_end': {
|
|
184
190
|
setStreamingMessage(null);
|
|
191
|
+
setUsage((prev) => prev?.totalTokens === event.totalUsage.totalTokens ? prev : event.totalUsage);
|
|
185
192
|
setMessagesState(() => {
|
|
186
193
|
if (!isCurrent())
|
|
187
194
|
return messagesRef.current;
|
|
@@ -310,6 +317,7 @@ export function useChat(options) {
|
|
|
310
317
|
pendingDecisions,
|
|
311
318
|
executingToolCallIds,
|
|
312
319
|
error,
|
|
320
|
+
usage,
|
|
313
321
|
send,
|
|
314
322
|
sendMessages,
|
|
315
323
|
setMessages,
|
|
@@ -322,6 +330,7 @@ export function useChat(options) {
|
|
|
322
330
|
pendingDecisions,
|
|
323
331
|
executingToolCallIds,
|
|
324
332
|
error,
|
|
333
|
+
usage,
|
|
325
334
|
send,
|
|
326
335
|
sendMessages,
|
|
327
336
|
setMessages,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentic-kit/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"author": "Dan Lynch <pyramation@gmail.com>",
|
|
5
5
|
"description": "React bindings for agentic-kit (useChat hook)",
|
|
6
6
|
"main": "index.js",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"test:watch": "jest --watch"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@agentic-kit/agent": "0.
|
|
41
|
-
"agentic-kit": "1.
|
|
40
|
+
"@agentic-kit/agent": "0.4.0",
|
|
41
|
+
"agentic-kit": "1.3.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": ">=18",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"react-dom": "19.2.5"
|
|
55
55
|
},
|
|
56
56
|
"keywords": [],
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "af045fe54e55e593a3e4292335faa28fdb878619"
|
|
58
58
|
}
|
package/use-chat.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentEvent, AgentToolResult } from '@agentic-kit/agent';
|
|
2
|
-
import type { AssistantMessage, Message } from 'agentic-kit';
|
|
2
|
+
import type { AssistantMessage, Message, Usage } from 'agentic-kit';
|
|
3
3
|
export type ToolDecisionPendingEvent = Extract<AgentEvent, {
|
|
4
4
|
type: 'tool_decision_pending';
|
|
5
5
|
}>;
|
|
@@ -33,6 +33,7 @@ export interface UseChatResult {
|
|
|
33
33
|
pendingDecisions: ReadonlyMap<string, ToolDecisionPendingEvent>;
|
|
34
34
|
executingToolCallIds: ReadonlySet<string>;
|
|
35
35
|
error: unknown;
|
|
36
|
+
usage: Usage | null;
|
|
36
37
|
send: (input: string | Message) => Promise<void>;
|
|
37
38
|
sendMessages: (messages: Message[]) => Promise<void>;
|
|
38
39
|
setMessages: (msgs: Message[] | ((prev: Message[]) => Message[])) => void;
|
package/use-chat.js
CHANGED
|
@@ -48,6 +48,7 @@ function useChat(options) {
|
|
|
48
48
|
const [pendingDecisions, setPendingDecisions] = (0, react_1.useState)(() => rederivePendingDecisions(options.initialMessages ?? []));
|
|
49
49
|
const [executingToolCallIds, setExecutingToolCallIds] = (0, react_1.useState)(() => new Set());
|
|
50
50
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
51
|
+
const [usage, setUsage] = (0, react_1.useState)(null);
|
|
51
52
|
const messagesRef = (0, react_1.useRef)(messages);
|
|
52
53
|
(0, react_1.useEffect)(() => {
|
|
53
54
|
messagesRef.current = messages;
|
|
@@ -79,6 +80,7 @@ function useChat(options) {
|
|
|
79
80
|
setPendingDecisions(new Map());
|
|
80
81
|
setExecutingToolCallIds(new Set());
|
|
81
82
|
setStreamingMessage(null);
|
|
83
|
+
setUsage(null);
|
|
82
84
|
if (optimisticUserMessage) {
|
|
83
85
|
setMessagesState((prev) => [...prev, optimisticUserMessage]);
|
|
84
86
|
}
|
|
@@ -183,8 +185,13 @@ function useChat(options) {
|
|
|
183
185
|
opts.onDecisionPending?.(event);
|
|
184
186
|
break;
|
|
185
187
|
}
|
|
188
|
+
case 'turn_end': {
|
|
189
|
+
setUsage((prev) => prev?.totalTokens === event.totalUsage.totalTokens ? prev : event.totalUsage);
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
186
192
|
case 'agent_end': {
|
|
187
193
|
setStreamingMessage(null);
|
|
194
|
+
setUsage((prev) => prev?.totalTokens === event.totalUsage.totalTokens ? prev : event.totalUsage);
|
|
188
195
|
setMessagesState(() => {
|
|
189
196
|
if (!isCurrent())
|
|
190
197
|
return messagesRef.current;
|
|
@@ -313,6 +320,7 @@ function useChat(options) {
|
|
|
313
320
|
pendingDecisions,
|
|
314
321
|
executingToolCallIds,
|
|
315
322
|
error,
|
|
323
|
+
usage,
|
|
316
324
|
send,
|
|
317
325
|
sendMessages,
|
|
318
326
|
setMessages,
|
|
@@ -325,6 +333,7 @@ function useChat(options) {
|
|
|
325
333
|
pendingDecisions,
|
|
326
334
|
executingToolCallIds,
|
|
327
335
|
error,
|
|
336
|
+
usage,
|
|
328
337
|
send,
|
|
329
338
|
sendMessages,
|
|
330
339
|
setMessages,
|