@polpo-ai/react 0.5.8 → 0.5.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"use-agent.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuBrD"}
1
+ {"version":3,"file":"use-agent.d.ts","sourceRoot":"","sources":["../../src/hooks/use-agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CA4BrD"}
@@ -20,9 +20,14 @@ export function useAgent(name) {
20
20
  }
21
21
  }, [client, name]);
22
22
  useEffect(() => {
23
+ if (!name) {
24
+ setAgent(null);
25
+ setIsLoading(false);
26
+ return;
27
+ }
23
28
  setIsLoading(true);
24
29
  fetchAgent().finally(() => setIsLoading(false));
25
- }, [fetchAgent]);
30
+ }, [fetchAgent, name]);
26
31
  return { agent, isLoading, error, refetch: fetchAgent };
27
32
  }
28
33
  //# sourceMappingURL=use-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-agent.js","sourceRoot":"","sources":["../../src/hooks/use-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAEjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"use-agent.js","sourceRoot":"","sources":["../../src/hooks/use-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAEvB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC1D,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ChatMessage, ChatCompletionChunk, AskUserPayload, MissionPreviewPayload, VaultPreviewPayload, OpenFilePayload, NavigateToPayload, OpenTabPayload, ToolCallEvent } from "@polpo-ai/sdk";
1
+ import type { ChatMessage, ChatCompletionChunk, ContentPart, AskUserPayload, MissionPreviewPayload, VaultPreviewPayload, OpenFilePayload, NavigateToPayload, OpenTabPayload, ToolCallEvent } from "@polpo-ai/sdk";
2
2
  export interface UseChatOptions {
3
3
  /** Target a specific agent for direct conversation. Omit for orchestrator mode. */
4
4
  agent?: string;
@@ -10,7 +10,11 @@ export interface UseChatOptions {
10
10
  onFinish?: (text: string) => void;
11
11
  /** Called on error. */
12
12
  onError?: (error: Error) => void;
13
- /** Called when the agent asks clarifying questions. */
13
+ /** Called after each stream update useful for scroll-to-bottom. */
14
+ onUpdate?: () => void;
15
+ /** Called when a new session is created (first message in a new chat). */
16
+ onSessionCreated?: (sessionId: string) => void;
17
+ /** Called when the agent asks clarifying questions (legacy orchestrator mode). */
14
18
  onAskUser?: (payload: AskUserPayload) => void;
15
19
  /** Called when the agent proposes a mission for review. */
16
20
  onMissionPreview?: (payload: MissionPreviewPayload) => void;
@@ -25,7 +29,7 @@ export interface UseChatOptions {
25
29
  /** Called when a tool call event is emitted. */
26
30
  onToolCall?: (toolCall: ToolCallEvent) => void;
27
31
  }
28
- export type ChatStatus = "idle" | "streaming" | "error";
32
+ export type ChatStatus = "idle" | "streaming" | "loading" | "error";
29
33
  /** A pending client-side tool call that needs a result from the client. */
30
34
  export interface PendingToolCall {
31
35
  /** Tool call ID from the LLM. */
@@ -36,10 +40,14 @@ export interface PendingToolCall {
36
40
  arguments: Record<string, unknown>;
37
41
  }
38
42
  export interface UseChatReturn {
39
- /** All messages in the current session (user + assistant). */
43
+ /**
44
+ * All messages in the current session (user + assistant).
45
+ * During streaming, the last assistant message updates in-place with accumulating
46
+ * content and tool calls — no separate `streamingText` needed.
47
+ */
40
48
  messages: ChatMessage[];
41
49
  /** Send a message (text or multimodal content parts). Streams the response automatically. */
42
- sendMessage: (content: string | import("@polpo-ai/sdk").ContentPart[]) => Promise<void>;
50
+ sendMessage: (content: string | ContentPart[]) => Promise<void>;
43
51
  /** Send a tool result back to the server. Used for client-side tools (e.g. ask_user_question). */
44
52
  sendToolResult: (toolCallId: string, toolName: string, result: string) => Promise<void>;
45
53
  /** Current session ID. `null` until the first response from the server. */
@@ -54,10 +62,6 @@ export interface UseChatReturn {
54
62
  error: Error | null;
55
63
  /** Whether a response is currently streaming. */
56
64
  isStreaming: boolean;
57
- /** The text being streamed for the current assistant response. */
58
- streamingText: string;
59
- /** Active tool calls during the current response. */
60
- activeToolCalls: ToolCallEvent[];
61
65
  /** Client-side tool call awaiting a result (e.g. ask_user_question). null when none pending. */
62
66
  pendingToolCall: PendingToolCall | null;
63
67
  /** Abort the current streaming response. */
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-chat.d.ts","sourceRoot":"","sources":["../../src/hooks/use-chat.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { useCallback, useRef, useState } from "react";
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
2
  import { usePolpoContext } from "../provider/polpo-context.js";
3
3
  import { ChatCompletionStream } from "@polpo-ai/sdk";
4
4
  // ── Hook ─────────────────────────────────────────────────
@@ -6,19 +6,39 @@ export function useChat(options = {}) {
6
6
  const { client } = usePolpoContext();
7
7
  const [messages, setMessages] = useState([]);
8
8
  const [sessionId, setSessionIdState] = useState(options.sessionId ?? null);
9
- const [status, setStatus] = useState("idle");
9
+ const [status, setStatus] = useState(options.sessionId ? "loading" : "idle");
10
10
  const [error, setError] = useState(null);
11
- const [streamingText, setStreamingText] = useState("");
12
- const [activeToolCalls, setActiveToolCalls] = useState([]);
13
11
  const [pendingToolCall, setPendingToolCall] = useState(null);
14
12
  const streamRef = useRef(null);
13
+ const isStreamingRef = useRef(false);
15
14
  const sessionIdRef = useRef(options.sessionId ?? null);
16
- /** Track the last assistant message content for tool call context. */
17
- const lastAssistantTextRef = useRef("");
15
+ const messagesRef = useRef(messages);
16
+ messagesRef.current = messages;
17
+ const optionsRef = useRef(options);
18
+ optionsRef.current = options;
19
+ // ── Auto-load session messages on mount ──
20
+ const loadedRef = useRef(false);
21
+ useEffect(() => {
22
+ if (!options.sessionId || loadedRef.current)
23
+ return;
24
+ loadedRef.current = true;
25
+ client.getSessionMessages(options.sessionId)
26
+ .then((data) => {
27
+ setMessages(data.messages);
28
+ setStatus("idle");
29
+ requestAnimationFrame(() => optionsRef.current.onUpdate?.());
30
+ })
31
+ .catch(() => {
32
+ setMessages([]);
33
+ setStatus("idle");
34
+ });
35
+ }, [options.sessionId, client]);
36
+ // ── Set session ID (manual) ──
18
37
  const setSessionId = useCallback(async (id) => {
19
38
  setSessionIdState(id);
20
39
  sessionIdRef.current = id;
21
40
  if (id) {
41
+ setStatus("loading");
22
42
  try {
23
43
  const data = await client.getSessionMessages(id);
24
44
  setMessages(data.messages);
@@ -26,14 +46,15 @@ export function useChat(options = {}) {
26
46
  catch {
27
47
  setMessages([]);
28
48
  }
49
+ setStatus("idle");
50
+ requestAnimationFrame(() => optionsRef.current.onUpdate?.());
29
51
  }
30
52
  else {
31
53
  setMessages([]);
54
+ setStatus("idle");
32
55
  }
33
- setStatus("idle");
34
56
  setError(null);
35
- setStreamingText("");
36
- setActiveToolCalls([]);
57
+ setPendingToolCall(null);
37
58
  }, [client]);
38
59
  const newSession = useCallback(() => {
39
60
  streamRef.current?.abort();
@@ -42,240 +63,183 @@ export function useChat(options = {}) {
42
63
  setMessages([]);
43
64
  setStatus("idle");
44
65
  setError(null);
45
- setStreamingText("");
46
- setActiveToolCalls([]);
66
+ setPendingToolCall(null);
67
+ isStreamingRef.current = false;
47
68
  }, []);
48
69
  const abort = useCallback(() => {
49
70
  streamRef.current?.abort();
50
71
  }, []);
72
+ // ── Shared streaming logic ──
73
+ const streamResponse = useCallback(async (historyMessages) => {
74
+ const stream = client.chatCompletionsStream({
75
+ messages: historyMessages,
76
+ sessionId: sessionIdRef.current ?? undefined,
77
+ agent: optionsRef.current.agent,
78
+ });
79
+ streamRef.current = stream;
80
+ // Add empty assistant message that will be updated in-place
81
+ const assistantId = `msg-${Date.now()}`;
82
+ setMessages((prev) => [
83
+ ...prev,
84
+ { id: assistantId, role: "assistant", content: "", ts: new Date().toISOString() },
85
+ ]);
86
+ let fullText = "";
87
+ const toolCalls = new Map();
88
+ for await (const chunk of stream) {
89
+ // Capture session ID
90
+ if (stream.sessionId && !sessionIdRef.current) {
91
+ sessionIdRef.current = stream.sessionId;
92
+ setSessionIdState(stream.sessionId);
93
+ optionsRef.current.onSessionCreated?.(stream.sessionId);
94
+ }
95
+ const choice = chunk.choices[0];
96
+ if (!choice)
97
+ continue;
98
+ let updated = false;
99
+ // Text content
100
+ if (choice.delta.content) {
101
+ fullText += choice.delta.content;
102
+ updated = true;
103
+ }
104
+ // Tool call events (server-side tool execution)
105
+ if (choice.tool_call) {
106
+ toolCalls.set(choice.tool_call.id, choice.tool_call);
107
+ updated = true;
108
+ optionsRef.current.onToolCall?.(choice.tool_call);
109
+ }
110
+ // Update assistant message in-place
111
+ if (updated) {
112
+ const content = fullText;
113
+ const tc = toolCalls.size > 0 ? Array.from(toolCalls.values()) : undefined;
114
+ setMessages((prev) => [
115
+ ...prev.slice(0, -1),
116
+ { id: assistantId, role: "assistant", content, ts: new Date().toISOString(), toolCalls: tc },
117
+ ]);
118
+ optionsRef.current.onUpdate?.();
119
+ }
120
+ // Client-side tool calls (finish_reason: "tool_calls")
121
+ if (choice.finish_reason === "tool_calls" && choice.delta.tool_calls?.length) {
122
+ const tc = choice.delta.tool_calls[0];
123
+ let args = {};
124
+ try {
125
+ args = JSON.parse(tc.function.arguments);
126
+ }
127
+ catch { /* best effort */ }
128
+ setPendingToolCall({
129
+ toolCallId: tc.id,
130
+ toolName: tc.function.name,
131
+ arguments: args,
132
+ });
133
+ }
134
+ // Legacy special finish reasons
135
+ if (choice.finish_reason === "ask_user" && choice.ask_user)
136
+ optionsRef.current.onAskUser?.(choice.ask_user);
137
+ if (choice.finish_reason === "mission_preview" && choice.mission_preview)
138
+ optionsRef.current.onMissionPreview?.(choice.mission_preview);
139
+ if (choice.finish_reason === "vault_preview" && choice.vault_preview)
140
+ optionsRef.current.onVaultPreview?.(choice.vault_preview);
141
+ if (choice.finish_reason === "open_file" && choice.open_file)
142
+ optionsRef.current.onOpenFile?.(choice.open_file);
143
+ if (choice.finish_reason === "navigate_to" && choice.navigate_to)
144
+ optionsRef.current.onNavigateTo?.(choice.navigate_to);
145
+ if (choice.finish_reason === "open_tab" && choice.open_tab)
146
+ optionsRef.current.onOpenTab?.(choice.open_tab);
147
+ optionsRef.current.onChunk?.(chunk);
148
+ }
149
+ streamRef.current = null;
150
+ isStreamingRef.current = false;
151
+ setStatus("idle");
152
+ optionsRef.current.onFinish?.(fullText);
153
+ }, [client]);
154
+ // ── Send message ──
51
155
  const sendMessage = useCallback(async (content) => {
52
- const userText = typeof content === "string" ? content : content.filter(p => p.type === "text").map(p => p.text).join(" ");
156
+ if (isStreamingRef.current)
157
+ return;
53
158
  // Optimistic: add user message immediately
54
159
  const userMsg = {
55
160
  id: `tmp-${Date.now()}`,
56
161
  role: "user",
57
- content: userText,
162
+ content,
58
163
  ts: new Date().toISOString(),
59
164
  };
60
- setMessages((prev) => [...prev, userMsg]);
165
+ const allMessages = [...messagesRef.current, userMsg];
166
+ setMessages(allMessages);
61
167
  setStatus("streaming");
168
+ isStreamingRef.current = true;
62
169
  setError(null);
63
- setStreamingText("");
64
- setActiveToolCalls([]);
170
+ setPendingToolCall(null);
65
171
  try {
66
- // Build messages array: full history + new message
67
- const historyMessages = messages.map((m) => ({
172
+ const historyMessages = allMessages.map((m) => ({
68
173
  role: m.role,
69
174
  content: m.content,
70
175
  }));
71
- historyMessages.push({
72
- role: "user",
73
- content: typeof content === "string" ? content : content,
74
- });
75
- const stream = client.chatCompletionsStream({
76
- messages: historyMessages,
77
- sessionId: sessionIdRef.current ?? undefined,
78
- agent: options.agent,
79
- });
80
- streamRef.current = stream;
81
- let fullText = "";
82
- for await (const chunk of stream) {
83
- // Capture session ID from the stream (set after first chunk)
84
- if (stream.sessionId && !sessionIdRef.current) {
85
- sessionIdRef.current = stream.sessionId;
86
- setSessionIdState(stream.sessionId);
87
- }
88
- const choice = chunk.choices[0];
89
- if (!choice)
90
- continue;
91
- // Text content
92
- if (choice.delta.content) {
93
- fullText += choice.delta.content;
94
- setStreamingText(fullText);
95
- }
96
- // Tool calls
97
- if (choice.tool_call) {
98
- setActiveToolCalls((prev) => {
99
- const idx = prev.findIndex((tc) => tc.id === choice.tool_call.id);
100
- if (idx >= 0) {
101
- const next = [...prev];
102
- next[idx] = choice.tool_call;
103
- return next;
104
- }
105
- return [...prev, choice.tool_call];
106
- });
107
- options.onToolCall?.(choice.tool_call);
108
- }
109
- // Standard client-side tool calls (finish_reason: "tool_calls")
110
- if (choice.finish_reason === "tool_calls" && choice.delta.tool_calls?.length) {
111
- const tc = choice.delta.tool_calls[0];
112
- let args = {};
113
- try {
114
- args = JSON.parse(tc.function.arguments);
115
- }
116
- catch { /* best effort */ }
117
- setPendingToolCall({
118
- toolCallId: tc.id,
119
- toolName: tc.function.name,
120
- arguments: args,
121
- });
122
- lastAssistantTextRef.current = fullText;
123
- }
124
- // Legacy special finish reasons (orchestrator mode)
125
- if (choice.finish_reason === "ask_user" && choice.ask_user) {
126
- options.onAskUser?.(choice.ask_user);
127
- }
128
- if (choice.finish_reason === "mission_preview" && choice.mission_preview) {
129
- options.onMissionPreview?.(choice.mission_preview);
130
- }
131
- if (choice.finish_reason === "vault_preview" && choice.vault_preview) {
132
- options.onVaultPreview?.(choice.vault_preview);
133
- }
134
- if (choice.finish_reason === "open_file" && choice.open_file) {
135
- options.onOpenFile?.(choice.open_file);
136
- }
137
- if (choice.finish_reason === "navigate_to" && choice.navigate_to) {
138
- options.onNavigateTo?.(choice.navigate_to);
139
- }
140
- if (choice.finish_reason === "open_tab" && choice.open_tab) {
141
- options.onOpenTab?.(choice.open_tab);
142
- }
143
- options.onChunk?.(chunk);
144
- }
145
- // Stream finished — add assistant message
146
- if (fullText) {
147
- const assistantMsg = {
148
- id: `msg-${Date.now()}`,
149
- role: "assistant",
150
- content: fullText,
151
- ts: new Date().toISOString(),
152
- };
153
- setMessages((prev) => [...prev, assistantMsg]);
154
- }
155
- setStreamingText("");
156
- setActiveToolCalls([]);
157
- setStatus("idle");
158
- streamRef.current = null;
159
- options.onFinish?.(fullText);
176
+ await streamResponse(historyMessages);
160
177
  }
161
178
  catch (err) {
162
179
  if (err?.name === "AbortError") {
163
- // User aborted — keep partial text as message if any
164
- const partial = streamingText;
165
- if (partial) {
166
- setMessages((prev) => [
167
- ...prev,
168
- { id: `msg-${Date.now()}`, role: "assistant", content: partial, ts: new Date().toISOString() },
169
- ]);
170
- }
171
- setStreamingText("");
172
- setActiveToolCalls([]);
180
+ // Keep partial message as-is
181
+ isStreamingRef.current = false;
173
182
  setStatus("idle");
174
183
  return;
175
184
  }
176
185
  setError(err);
177
186
  setStatus("error");
178
- options.onError?.(err);
187
+ isStreamingRef.current = false;
188
+ // Remove the empty assistant message on error
189
+ setMessages((prev) => prev[prev.length - 1]?.content === "" ? prev.slice(0, -1) : prev);
190
+ optionsRef.current.onError?.(err);
179
191
  }
180
- }, [client, messages, options, streamingText]);
192
+ }, [streamResponse]);
193
+ // ── Send tool result ──
181
194
  const sendToolResult = useCallback(async (toolCallId, toolName, result) => {
182
195
  setPendingToolCall(null);
183
196
  setStatus("streaming");
197
+ isStreamingRef.current = true;
184
198
  setError(null);
185
- setStreamingText("");
186
- setActiveToolCalls([]);
187
199
  try {
188
- // Build messages: full history + assistant message with tool_calls + tool result
189
- const historyMessages = messages.map((m) => ({
190
- role: m.role,
191
- content: m.content,
192
- }));
193
- // Add the assistant message that triggered the tool call (with tool_calls field)
194
- if (lastAssistantTextRef.current) {
195
- historyMessages.push({
196
- role: "assistant",
197
- content: lastAssistantTextRef.current,
198
- });
199
- }
200
- // Add the tool result
200
+ // Build history include tool_calls on the assistant message that triggered the client-side tool
201
+ const historyMessages = messagesRef.current.map((m) => {
202
+ const msg = {
203
+ role: m.role,
204
+ content: m.content,
205
+ };
206
+ // If this assistant message has toolCalls that match the pending tool, include them
207
+ if (m.role === "assistant" && m.toolCalls) {
208
+ const clientToolCall = m.toolCalls.find((tc) => tc.id === toolCallId || tc.name === toolName);
209
+ if (clientToolCall) {
210
+ msg.tool_calls = [{
211
+ id: clientToolCall.id,
212
+ type: "function",
213
+ function: {
214
+ name: clientToolCall.name,
215
+ arguments: JSON.stringify(clientToolCall.arguments ?? {}),
216
+ },
217
+ }];
218
+ }
219
+ }
220
+ return msg;
221
+ });
222
+ // Add tool result message
201
223
  historyMessages.push({
202
224
  role: "tool",
203
225
  content: result,
204
226
  tool_call_id: toolCallId,
205
227
  name: toolName,
206
228
  });
207
- const stream = client.chatCompletionsStream({
208
- messages: historyMessages,
209
- sessionId: sessionIdRef.current ?? undefined,
210
- agent: options.agent,
211
- });
212
- streamRef.current = stream;
213
- let fullText = "";
214
- for await (const chunk of stream) {
215
- if (stream.sessionId && !sessionIdRef.current) {
216
- sessionIdRef.current = stream.sessionId;
217
- setSessionIdState(stream.sessionId);
218
- }
219
- const choice = chunk.choices[0];
220
- if (!choice)
221
- continue;
222
- if (choice.delta.content) {
223
- fullText += choice.delta.content;
224
- setStreamingText(fullText);
225
- }
226
- if (choice.tool_call) {
227
- setActiveToolCalls((prev) => {
228
- const idx = prev.findIndex((tc) => tc.id === choice.tool_call.id);
229
- if (idx >= 0) {
230
- const next = [...prev];
231
- next[idx] = choice.tool_call;
232
- return next;
233
- }
234
- return [...prev, choice.tool_call];
235
- });
236
- options.onToolCall?.(choice.tool_call);
237
- }
238
- // Handle another client-side tool call in the resumed stream
239
- if (choice.finish_reason === "tool_calls" && choice.delta.tool_calls?.length) {
240
- const tc = choice.delta.tool_calls[0];
241
- let args = {};
242
- try {
243
- args = JSON.parse(tc.function.arguments);
244
- }
245
- catch { /* best effort */ }
246
- setPendingToolCall({
247
- toolCallId: tc.id,
248
- toolName: tc.function.name,
249
- arguments: args,
250
- });
251
- lastAssistantTextRef.current = fullText;
252
- }
253
- options.onChunk?.(chunk);
254
- }
255
- if (fullText) {
256
- setMessages((prev) => [
257
- ...prev,
258
- { id: `msg-${Date.now()}`, role: "assistant", content: fullText, ts: new Date().toISOString() },
259
- ]);
260
- }
261
- setStreamingText("");
262
- setActiveToolCalls([]);
263
- setStatus("idle");
264
- streamRef.current = null;
265
- options.onFinish?.(fullText);
229
+ await streamResponse(historyMessages);
266
230
  }
267
231
  catch (err) {
268
232
  if (err?.name === "AbortError") {
269
- setStreamingText("");
270
- setActiveToolCalls([]);
233
+ isStreamingRef.current = false;
271
234
  setStatus("idle");
272
235
  return;
273
236
  }
274
237
  setError(err);
275
238
  setStatus("error");
276
- options.onError?.(err);
239
+ isStreamingRef.current = false;
240
+ optionsRef.current.onError?.(err);
277
241
  }
278
- }, [client, messages, options]);
242
+ }, [streamResponse]);
279
243
  return {
280
244
  messages,
281
245
  sendMessage,
@@ -286,8 +250,6 @@ export function useChat(options = {}) {
286
250
  status,
287
251
  error,
288
252
  isStreaming: status === "streaming",
289
- streamingText,
290
- activeToolCalls,
291
253
  pendingToolCall,
292
254
  abort,
293
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-chat.js","sourceRoot":"","sources":["../../src/hooks/use-chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-chat.js","sourceRoot":"","sources":["../../src/hooks/use-chat.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/react",
3
- "version": "0.5.8",
3
+ "version": "0.5.12",
4
4
  "description": "React SDK for OpenPolpo — hooks with real-time SSE updates, built on @polpo-ai/sdk",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "sideEffects": false,
19
19
  "dependencies": {
20
- "@polpo-ai/sdk": "0.5.8"
20
+ "@polpo-ai/sdk": "0.5.12"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": "^18.0.0 || ^19.0.0"