@blocksdiy/react-common 1.18.0 → 1.20.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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ReactNode, SetStateAction } from "react";
|
|
2
2
|
import { type VoiceCallMessage } from "../hooks/use-voice-call.js";
|
|
3
|
+
export declare const ASK_USER_TOOL_NAME = "ask_user";
|
|
3
4
|
export interface Attachment {
|
|
4
5
|
url: string;
|
|
5
6
|
fileType: string;
|
|
@@ -24,9 +25,52 @@ export interface LegacyMessagePayload {
|
|
|
24
25
|
payload: Record<string, any>;
|
|
25
26
|
hiddenContent?: string;
|
|
26
27
|
}
|
|
28
|
+
export type AskUserQuestionType = "text" | "single_select" | "multi_select";
|
|
29
|
+
export interface AskUserQuestionOption {
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface AskUserQuestion {
|
|
35
|
+
id: string;
|
|
36
|
+
label: string;
|
|
37
|
+
type: AskUserQuestionType;
|
|
38
|
+
required?: boolean;
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
options?: AskUserQuestionOption[];
|
|
41
|
+
choices?: string[];
|
|
42
|
+
allowOther?: boolean;
|
|
43
|
+
otherLabel?: string;
|
|
44
|
+
presentation?: "chips" | "cards";
|
|
45
|
+
}
|
|
46
|
+
export interface AskUserPayload {
|
|
47
|
+
questions?: AskUserQuestion[];
|
|
48
|
+
}
|
|
49
|
+
export interface AskUserSubmittedAnswer {
|
|
50
|
+
questionId: string;
|
|
51
|
+
question: string;
|
|
52
|
+
type: AskUserQuestionType;
|
|
53
|
+
value?: string;
|
|
54
|
+
values?: string[];
|
|
55
|
+
label?: string;
|
|
56
|
+
labels?: string[];
|
|
57
|
+
other?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface ToolResumeInput {
|
|
60
|
+
toolCallId?: string;
|
|
61
|
+
toolName?: string;
|
|
62
|
+
type?: string;
|
|
63
|
+
skipped?: boolean;
|
|
64
|
+
[key: string]: unknown;
|
|
65
|
+
}
|
|
66
|
+
export interface SubmitAskUserAnswersInput extends ToolResumeInput {
|
|
67
|
+
type?: "ask_user";
|
|
68
|
+
answers: AskUserSubmittedAnswer[];
|
|
69
|
+
}
|
|
27
70
|
type CopilotMessageMetadata = {
|
|
28
71
|
version?: 1;
|
|
29
72
|
hiddenPrompt?: string;
|
|
73
|
+
kind?: "tool-resume";
|
|
30
74
|
};
|
|
31
75
|
type CopilotToolCall = {
|
|
32
76
|
id?: string;
|
|
@@ -71,6 +115,8 @@ export interface AgentChatContextValue {
|
|
|
71
115
|
threadIds: string[];
|
|
72
116
|
agentChatData?: AgentChatData;
|
|
73
117
|
sendMessage: (message: Omit<LegacyMessagePayload, "id" | "role" | "type" | "payload">) => Promise<void>;
|
|
118
|
+
submitToolResume: (input: ToolResumeInput) => Promise<void>;
|
|
119
|
+
submitAskUserAnswers: (input: SubmitAskUserAnswersInput) => Promise<void>;
|
|
74
120
|
sendFromInputs: () => Promise<void>;
|
|
75
121
|
addMessages: (newMessages: MessageItem[]) => void;
|
|
76
122
|
addAttachments: (attachments: Attachment[]) => void;
|
|
@@ -88,6 +134,9 @@ export interface AgentChatContextValue {
|
|
|
88
134
|
chatId?: string;
|
|
89
135
|
noPersistency?: boolean;
|
|
90
136
|
}
|
|
137
|
+
export declare const formatAskUserAnswerSummary: (answers: AskUserSubmittedAnswer[]) => string;
|
|
138
|
+
export declare const buildToolResumeHiddenContent: ({ toolName, type, skipped, ...resumePayload }: ToolResumeInput) => string;
|
|
139
|
+
export declare const buildAskUserAnswersHiddenContent: (input: SubmitAskUserAnswersInput) => string;
|
|
91
140
|
export declare const useAgentChat: () => AgentChatContextValue;
|
|
92
141
|
export interface ToolCardContextValue {
|
|
93
142
|
open: boolean;
|
|
@@ -165,6 +214,41 @@ export interface AgentChatRootProps {
|
|
|
165
214
|
useDynamicUI?: boolean;
|
|
166
215
|
}
|
|
167
216
|
export type ResolvedAgentChatConfig = Pick<AgentChatRootProps, "agentBlockId" | "agentHarness" | "agentChatData" | "shortTermMemory" | "useDynamicUI">;
|
|
217
|
+
interface HitlResumeRequestBodyInput {
|
|
218
|
+
appId: string;
|
|
219
|
+
agentBlockId?: string;
|
|
220
|
+
agentChatId?: string;
|
|
221
|
+
chatId?: string;
|
|
222
|
+
currentThreadId?: string;
|
|
223
|
+
noPersistency?: boolean;
|
|
224
|
+
shortTermMemory: {
|
|
225
|
+
isEnabled: boolean;
|
|
226
|
+
isPersistent?: boolean;
|
|
227
|
+
};
|
|
228
|
+
chatContextFiles?: Attachment[];
|
|
229
|
+
chatContext: unknown;
|
|
230
|
+
requestMessages: CopilotMessage[];
|
|
231
|
+
messageId: string;
|
|
232
|
+
input: ToolResumeInput;
|
|
233
|
+
}
|
|
234
|
+
export declare const buildHitlResumeRequestBody: ({ appId, agentBlockId, agentChatId, chatId, currentThreadId, noPersistency, shortTermMemory, chatContextFiles, chatContext, requestMessages, messageId, input, }: HitlResumeRequestBodyInput) => {
|
|
235
|
+
appId: string;
|
|
236
|
+
agentBlockId: string | undefined;
|
|
237
|
+
agentChatId: string | undefined;
|
|
238
|
+
chatId: string | undefined;
|
|
239
|
+
threadId: string | undefined;
|
|
240
|
+
noPersistency: boolean | undefined;
|
|
241
|
+
shortTermMemory: {
|
|
242
|
+
isEnabled: boolean;
|
|
243
|
+
isPersistent?: boolean;
|
|
244
|
+
};
|
|
245
|
+
chatContextFiles: Attachment[] | undefined;
|
|
246
|
+
chatContext: string | undefined;
|
|
247
|
+
files: never[];
|
|
248
|
+
messages: CopilotMessage[];
|
|
249
|
+
messageId: string;
|
|
250
|
+
hitlResume: ToolResumeInput;
|
|
251
|
+
};
|
|
168
252
|
export declare const AgentChatRoot: ({ appId, token, agentBlockId, agentHarness, useAgentBlockDirectChat, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled, shortTermMemory, useDynamicUI, }: AgentChatRootProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
169
253
|
export interface AgentChatVoiceContextValue {
|
|
170
254
|
isConnected: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/agent-chat.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/agent-chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ const CHAT_AGENT_CALL_ACTION_BLOCK_ID = "688ed4d77b454b1fdaf5cf2d";
|
|
|
15
15
|
const MAX_FILE_SIZE_MB = 5;
|
|
16
16
|
const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
|
|
17
17
|
const DEFAULT_SHORT_TERM_MEMORY = { isEnabled: true, isPersistent: true };
|
|
18
|
+
export const ASK_USER_TOOL_NAME = "ask_user";
|
|
18
19
|
const validateAndConvertFiles = (files) => {
|
|
19
20
|
if (files.length === 0) {
|
|
20
21
|
return null;
|
|
@@ -36,11 +37,92 @@ const generateId = (length = 10) => {
|
|
|
36
37
|
.toString(36)
|
|
37
38
|
.substring(2, 2 + length);
|
|
38
39
|
};
|
|
40
|
+
export const formatAskUserAnswerSummary = (answers) => {
|
|
41
|
+
const lines = answers.map((answer) => {
|
|
42
|
+
const selectedValues = answer.values !== undefined ? [...(answer.labels || []), answer.other].filter(Boolean).join(", ") : undefined;
|
|
43
|
+
const value = selectedValues || answer.other || answer.label || answer.value || "No answer";
|
|
44
|
+
return `- ${answer.question}: ${value}`;
|
|
45
|
+
});
|
|
46
|
+
return lines.join("\n");
|
|
47
|
+
};
|
|
48
|
+
export const buildToolResumeHiddenContent = ({ toolName = "tool", type = "tool", skipped, ...resumePayload }) => [
|
|
49
|
+
`The user submitted a resume payload to ${toolName}.`,
|
|
50
|
+
JSON.stringify({
|
|
51
|
+
type: "tool_resume",
|
|
52
|
+
status: skipped ? "skipped" : "answered",
|
|
53
|
+
resumeType: type,
|
|
54
|
+
toolName,
|
|
55
|
+
skipped,
|
|
56
|
+
...resumePayload,
|
|
57
|
+
}, null, 2),
|
|
58
|
+
].join("\n\n");
|
|
59
|
+
export const buildAskUserAnswersHiddenContent = (input) => buildToolResumeHiddenContent({
|
|
60
|
+
...input,
|
|
61
|
+
toolName: input.toolName ?? ASK_USER_TOOL_NAME,
|
|
62
|
+
type: "ask_user",
|
|
63
|
+
});
|
|
64
|
+
const isToolResumeHiddenContent = (hiddenContent) => typeof hiddenContent === "string" && hiddenContent.includes('"tool_resume"');
|
|
65
|
+
const isToolResumeCopilotMessage = (message) => message.metadata?.kind === "tool-resume" || isToolResumeHiddenContent(message.metadata?.hiddenPrompt);
|
|
66
|
+
/**
|
|
67
|
+
* Suppress the synthetic `TOOL_CALL_START` / `TOOL_CALL_ARGS` / `TOOL_CALL_END`
|
|
68
|
+
* events that the AGUI LangGraph agent re-emits when a previously-streamed
|
|
69
|
+
* tool resumes from a LangGraph `interrupt()` (e.g. the `ask_user` HITL flow).
|
|
70
|
+
*
|
|
71
|
+
* On resume the model is NOT re-invoked for the tool args — it just continues
|
|
72
|
+
* from the checkpoint — so `has_function_streaming` resets to False and the
|
|
73
|
+
* AGUI agent dispatches a synthetic START/ARGS/END pair before the real
|
|
74
|
+
* `TOOL_CALL_RESULT`. Applied client-side by `@ag-ui/client`'s default reducer
|
|
75
|
+
* those events:
|
|
76
|
+
* 1. Create a synthetic empty assistant message (parent_message_id maps to
|
|
77
|
+
* the new ToolMessage's id, which doesn't exist yet → new bubble pushed).
|
|
78
|
+
* 2. Append the full args JSON onto the original assistant message's
|
|
79
|
+
* already-complete tool call args (corrupting them so `parseMaybeJson`
|
|
80
|
+
* fails and the `AskUserPart` can't render the form input).
|
|
81
|
+
*
|
|
82
|
+
* Both effects flash as empty bubbles in the chat until the run-end
|
|
83
|
+
* `MESSAGES_SNAPSHOT` reconciles them. Suppressing the duplicate START (and
|
|
84
|
+
* its paired ARGS/END) at the subscriber layer keeps the original tool call
|
|
85
|
+
* intact and lets `TOOL_CALL_RESULT` resolve it cleanly through the existing
|
|
86
|
+
* `normalizeCopilotToolCall` pairing logic.
|
|
87
|
+
*/
|
|
88
|
+
const createDuplicateToolCallSuppressor = () => {
|
|
89
|
+
const suppressedToolCallIds = new Set();
|
|
90
|
+
return {
|
|
91
|
+
onToolCallStartEvent: ({ event, messages }) => {
|
|
92
|
+
const toolCallId = event.toolCallId;
|
|
93
|
+
if (!toolCallId) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
const alreadyPresent = messages.some((message) => message.role === "assistant" &&
|
|
97
|
+
Array.isArray(message.toolCalls) &&
|
|
98
|
+
message.toolCalls.some((tc) => tc.id === toolCallId));
|
|
99
|
+
if (alreadyPresent) {
|
|
100
|
+
suppressedToolCallIds.add(toolCallId);
|
|
101
|
+
return { stopPropagation: true };
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
},
|
|
105
|
+
onToolCallArgsEvent: ({ event }) => {
|
|
106
|
+
if (event.toolCallId && suppressedToolCallIds.has(event.toolCallId)) {
|
|
107
|
+
return { stopPropagation: true };
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
},
|
|
111
|
+
onToolCallEndEvent: ({ event }) => {
|
|
112
|
+
if (event.toolCallId && suppressedToolCallIds.has(event.toolCallId)) {
|
|
113
|
+
suppressedToolCallIds.delete(event.toolCallId);
|
|
114
|
+
return { stopPropagation: true };
|
|
115
|
+
}
|
|
116
|
+
return undefined;
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
};
|
|
39
120
|
class BlocksCopilotHttpAgent extends HttpAgent {
|
|
40
121
|
requestHeaders = {};
|
|
41
122
|
requestBody = {};
|
|
42
123
|
constructor({ url }) {
|
|
43
124
|
super({ url, headers: {} });
|
|
125
|
+
this.subscribe(createDuplicateToolCallSuppressor());
|
|
44
126
|
}
|
|
45
127
|
setRequestOptions({ headers, body }) {
|
|
46
128
|
this.requestHeaders = headers;
|
|
@@ -80,8 +162,12 @@ const legacyPayloadToCopilotMessage = (message) => ({
|
|
|
80
162
|
version: 1,
|
|
81
163
|
hiddenPrompt: message.hiddenContent,
|
|
82
164
|
},
|
|
165
|
+
...(Array.isArray(message.payload?.toolCalls) ? { toolCalls: message.payload.toolCalls } : {}),
|
|
83
166
|
});
|
|
84
167
|
const messageItemToCopilotMessage = (message) => {
|
|
168
|
+
if (isToolResumeHiddenContent(message.msg.hiddenContent)) {
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
85
171
|
return legacyPayloadToCopilotMessage(message.msg);
|
|
86
172
|
};
|
|
87
173
|
const normalizeCopilotToolCall = (toolCall, allMessages) => {
|
|
@@ -101,6 +187,9 @@ const normalizeCopilotToolCall = (toolCall, allMessages) => {
|
|
|
101
187
|
};
|
|
102
188
|
};
|
|
103
189
|
const copilotMessageToLegacyPayload = (message, allMessages = []) => {
|
|
190
|
+
if (isToolResumeCopilotMessage(message)) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
104
193
|
if (!message.id || (message.role !== "user" && message.role !== "assistant")) {
|
|
105
194
|
return null;
|
|
106
195
|
}
|
|
@@ -117,7 +206,34 @@ const copilotMessageToLegacyPayload = (message, allMessages = []) => {
|
|
|
117
206
|
payload: toolCalls.length ? { toolCalls } : {},
|
|
118
207
|
};
|
|
119
208
|
};
|
|
120
|
-
const messageItemToLegacyPayload = (message) => message.msg;
|
|
209
|
+
const messageItemToLegacyPayload = (message) => isToolResumeHiddenContent(message.msg.hiddenContent) ? null : message.msg;
|
|
210
|
+
const getToolCallName = (toolCall) => toolCall.toolName ||
|
|
211
|
+
toolCall.function?.name ||
|
|
212
|
+
toolCall.name ||
|
|
213
|
+
(typeof toolCall.type === "string" ? toolCall.type.replace(/^tool-/, "") : undefined);
|
|
214
|
+
const getToolCallId = (toolCall) => toolCall.toolCallId || toolCall.id;
|
|
215
|
+
const isResolvedToolCall = (toolCall) => toolCall.state === "output-available" || toolCall.output !== undefined;
|
|
216
|
+
const findPendingAskUserToolCall = (messages) => {
|
|
217
|
+
for (let messageIndex = messages.length - 1; messageIndex >= 0; messageIndex -= 1) {
|
|
218
|
+
const toolCalls = messages[messageIndex].msg.payload?.toolCalls;
|
|
219
|
+
if (!Array.isArray(toolCalls)) {
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
for (let toolIndex = toolCalls.length - 1; toolIndex >= 0; toolIndex -= 1) {
|
|
223
|
+
const toolCall = toolCalls[toolIndex];
|
|
224
|
+
if (!toolCall || typeof toolCall !== "object") {
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (getToolCallName(toolCall) === ASK_USER_TOOL_NAME && !isResolvedToolCall(toolCall)) {
|
|
228
|
+
return {
|
|
229
|
+
toolCallId: getToolCallId(toolCall),
|
|
230
|
+
toolName: ASK_USER_TOOL_NAME,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
};
|
|
121
237
|
const appendCopilotErrorMessage = (messages, error) => {
|
|
122
238
|
const text = "Error: " + (error instanceof Error ? error.message : "Unknown error");
|
|
123
239
|
const lastMessage = messages[messages.length - 1];
|
|
@@ -134,11 +250,14 @@ const appendCopilotErrorMessage = (messages, error) => {
|
|
|
134
250
|
},
|
|
135
251
|
];
|
|
136
252
|
};
|
|
137
|
-
const storedMessageToLegacyView = (message) => {
|
|
253
|
+
const storedMessageToLegacyView = (message, allMessages = []) => {
|
|
138
254
|
if ("type" in message.msg) {
|
|
255
|
+
if (message.msg.role !== "human" && message.msg.role !== "ai") {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
139
258
|
return message;
|
|
140
259
|
}
|
|
141
|
-
const legacyPayload = copilotMessageToLegacyPayload(message.msg);
|
|
260
|
+
const legacyPayload = copilotMessageToLegacyPayload(message.msg, allMessages);
|
|
142
261
|
if (legacyPayload) {
|
|
143
262
|
return {
|
|
144
263
|
...message,
|
|
@@ -146,16 +265,7 @@ const storedMessageToLegacyView = (message) => {
|
|
|
146
265
|
msg: legacyPayload,
|
|
147
266
|
};
|
|
148
267
|
}
|
|
149
|
-
return
|
|
150
|
-
...message,
|
|
151
|
-
msg: {
|
|
152
|
-
id: message.msg.id ?? generateId(),
|
|
153
|
-
role: "ai",
|
|
154
|
-
type: "text",
|
|
155
|
-
content: "",
|
|
156
|
-
payload: {},
|
|
157
|
-
},
|
|
158
|
-
};
|
|
268
|
+
return null;
|
|
159
269
|
};
|
|
160
270
|
export const useAgentChat = () => {
|
|
161
271
|
const context = useContext(AgentChatContext);
|
|
@@ -355,6 +465,21 @@ const mergeMessageItemsById = (currentMessages, incomingMessages) => {
|
|
|
355
465
|
return nextMessages;
|
|
356
466
|
};
|
|
357
467
|
const formatChatContext = (chatContext) => (chatContext ? `Context: \n${JSON.stringify(chatContext)}` : undefined);
|
|
468
|
+
export const buildHitlResumeRequestBody = ({ appId, agentBlockId, agentChatId, chatId, currentThreadId, noPersistency, shortTermMemory, chatContextFiles, chatContext, requestMessages, messageId, input, }) => ({
|
|
469
|
+
appId,
|
|
470
|
+
agentBlockId,
|
|
471
|
+
agentChatId,
|
|
472
|
+
chatId,
|
|
473
|
+
threadId: currentThreadId,
|
|
474
|
+
noPersistency,
|
|
475
|
+
shortTermMemory,
|
|
476
|
+
chatContextFiles,
|
|
477
|
+
chatContext: formatChatContext(chatContext),
|
|
478
|
+
files: [],
|
|
479
|
+
messages: requestMessages,
|
|
480
|
+
messageId,
|
|
481
|
+
hitlResume: input,
|
|
482
|
+
});
|
|
358
483
|
function useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage, }) {
|
|
359
484
|
const [prompt, setPrompt] = useState("");
|
|
360
485
|
const [attachments, setAttachments] = useState([]);
|
|
@@ -564,6 +689,9 @@ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId,
|
|
|
564
689
|
const newMessages = [...prevMessages];
|
|
565
690
|
for (const rawMessageToAdd of messagesToAdd) {
|
|
566
691
|
const messageToAdd = storedMessageToLegacyView(rawMessageToAdd);
|
|
692
|
+
if (!messageToAdd) {
|
|
693
|
+
continue;
|
|
694
|
+
}
|
|
567
695
|
const existingIndex = newMessages.findIndex((m) => m.msg.id === messageToAdd.msg.id);
|
|
568
696
|
if (existingIndex !== -1) {
|
|
569
697
|
newMessages[existingIndex] = messageToAdd;
|
|
@@ -675,6 +803,18 @@ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId,
|
|
|
675
803
|
memoryEnabled,
|
|
676
804
|
shortTermMemory,
|
|
677
805
|
]);
|
|
806
|
+
const submitToolResume = useCallback(async (input) => {
|
|
807
|
+
await sendMessage({
|
|
808
|
+
content: "",
|
|
809
|
+
hiddenContent: buildToolResumeHiddenContent(input),
|
|
810
|
+
});
|
|
811
|
+
}, [sendMessage]);
|
|
812
|
+
const submitAskUserAnswers = useCallback(async (input) => {
|
|
813
|
+
await sendMessage({
|
|
814
|
+
content: formatAskUserAnswerSummary(input.answers),
|
|
815
|
+
hiddenContent: buildAskUserAnswersHiddenContent(input),
|
|
816
|
+
});
|
|
817
|
+
}, [sendMessage]);
|
|
678
818
|
useAgentChatDataInitialization({
|
|
679
819
|
agentChatData,
|
|
680
820
|
addMessages,
|
|
@@ -682,7 +822,7 @@ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId,
|
|
|
682
822
|
isPersistentFlow,
|
|
683
823
|
});
|
|
684
824
|
const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
|
|
685
|
-
return (_jsx(AgentChatContextProvider, { ...inputState, messages: flattenLegacyMessages(messages), initialAgentMessages: initialAgentMessages, isThinking: isThinking, isFetchingMessages: isFetchingMessages, currentThreadId: currentThreadId, agentChatData: agentChatData, sendMessage: sendMessage, addMessages: addMessages, setCurrentThreadId: setCurrentThreadId, appId: appId, token: token, agentChatId: agentChatId, chatId: chatId, noPersistency: noPersistency, children: children }));
|
|
825
|
+
return (_jsx(AgentChatContextProvider, { ...inputState, messages: flattenLegacyMessages(messages), initialAgentMessages: initialAgentMessages, isThinking: isThinking, isFetchingMessages: isFetchingMessages, currentThreadId: currentThreadId, agentChatData: agentChatData, sendMessage: sendMessage, submitToolResume: submitToolResume, submitAskUserAnswers: submitAskUserAnswers, addMessages: addMessages, setCurrentThreadId: setCurrentThreadId, appId: appId, token: token, agentChatId: agentChatId, chatId: chatId, noPersistency: noPersistency, children: children }));
|
|
686
826
|
}
|
|
687
827
|
function CopilotAgentChatRootProvider({ appId, token, ...props }) {
|
|
688
828
|
const copilotRuntimeUrl = `${getApiHost()}/agent-chat-stream`;
|
|
@@ -694,6 +834,11 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
694
834
|
const [externalMessages, setExternalMessages] = useState([]);
|
|
695
835
|
const copilotMessageCreatedAtByIdRef = useRef({});
|
|
696
836
|
const previousCopilotChatIdRef = useRef(undefined);
|
|
837
|
+
// Latest snapshot of public `messages` for callbacks that read it after an
|
|
838
|
+
// await. The closure value goes stale after `runHitlResume` resolves — the
|
|
839
|
+
// resume's stream events update copilotMessages → messages, but the callback
|
|
840
|
+
// still sees the value captured at invocation time.
|
|
841
|
+
const messagesRef = useRef([]);
|
|
697
842
|
const copilotChatId = useMemo(() => [appId, agentChatId, chatId, currentThreadId].filter(Boolean).join(":"), [appId, agentChatId, chatId, currentThreadId]);
|
|
698
843
|
const { messages: copilotMessages, sendMessage: sendCopilotMessage, setMessages: setCopilotMessages, isLoading: isCopilotLoading, } = useCopilotChatInternal();
|
|
699
844
|
// Wait one commit before firing the init send: CopilotKit's setup effect aborts the
|
|
@@ -726,7 +871,12 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
726
871
|
})
|
|
727
872
|
.filter((message) => Boolean(message)), [copilotMessages]);
|
|
728
873
|
const messages = useMemo(() => {
|
|
729
|
-
const
|
|
874
|
+
const fetchedCopilotMessages = fetchedMessages
|
|
875
|
+
.map((message) => message.msg)
|
|
876
|
+
.filter((message) => !("type" in message));
|
|
877
|
+
const fetchedMessageItems = fetchedMessages
|
|
878
|
+
.map((message) => storedMessageToLegacyView(message, fetchedCopilotMessages))
|
|
879
|
+
.filter((message) => Boolean(message));
|
|
730
880
|
// Seed initial agent messages so the stream echo merges by id and keeps the early createdAt.
|
|
731
881
|
const nextMessages = mergeMessageItemsById(mergeMessageItemsById(initialAgentMessages, fetchedMessageItems), externalMessages);
|
|
732
882
|
for (const messageItem of copilotMessageItems) {
|
|
@@ -746,15 +896,94 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
746
896
|
return nextMessages;
|
|
747
897
|
}, [copilotMessageItems, externalMessages, fetchedMessages, initialAgentMessages]);
|
|
748
898
|
const isThinking = isCopilotLoading;
|
|
899
|
+
useEffect(() => {
|
|
900
|
+
messagesRef.current = messages;
|
|
901
|
+
}, [messages]);
|
|
749
902
|
const addExternalMessages = useCallback((messagesToAdd) => {
|
|
750
|
-
const
|
|
903
|
+
const copilotMessagesToAdd = messagesToAdd
|
|
904
|
+
.map((message) => message.msg)
|
|
905
|
+
.filter((message) => !("type" in message));
|
|
906
|
+
const normalizedMessages = messagesToAdd
|
|
907
|
+
.map((message) => storedMessageToLegacyView(message, copilotMessagesToAdd))
|
|
908
|
+
.filter((message) => Boolean(message));
|
|
751
909
|
setExternalMessages((prevMessages) => mergeMessageItemsById(prevMessages, normalizedMessages));
|
|
752
910
|
}, []);
|
|
753
911
|
const addCopilotErrorMessage = useCallback((error) => {
|
|
754
912
|
setCopilotMessages(appendCopilotErrorMessage(copilotMessages, error));
|
|
755
913
|
}, [copilotMessages, setCopilotMessages]);
|
|
914
|
+
const runHitlResume = useCallback(async (input) => {
|
|
915
|
+
const messageId = generateId();
|
|
916
|
+
const hiddenContent = buildToolResumeHiddenContent(input);
|
|
917
|
+
const userCopilotMessage = {
|
|
918
|
+
id: messageId,
|
|
919
|
+
role: "user",
|
|
920
|
+
content: "",
|
|
921
|
+
metadata: { version: 1, hiddenPrompt: hiddenContent, kind: "tool-resume" },
|
|
922
|
+
};
|
|
923
|
+
// Always read the latest snapshot — the resume flow can be invoked from
|
|
924
|
+
// sendMessage's skipped path right after another awaited resume settled.
|
|
925
|
+
const latestMessages = messagesRef.current;
|
|
926
|
+
const requestMessages = latestMessages
|
|
927
|
+
.map(messageItemToCopilotMessage)
|
|
928
|
+
.filter((requestMessage) => Boolean(requestMessage));
|
|
929
|
+
setCopilotMessages(requestMessages);
|
|
930
|
+
copilotAgent.setRequestOptions({
|
|
931
|
+
headers: {
|
|
932
|
+
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
933
|
+
...(AppVersionService.getCurrentVersionNumber()
|
|
934
|
+
? { "x-app-version": String(AppVersionService.getCurrentVersionNumber()) }
|
|
935
|
+
: {}),
|
|
936
|
+
...(websocketsService.getSocketId() ? { "x-socket-id": websocketsService.getSocketId() } : {}),
|
|
937
|
+
...(appId ? { "x-app-id": appId } : {}),
|
|
938
|
+
},
|
|
939
|
+
body: buildHitlResumeRequestBody({
|
|
940
|
+
appId,
|
|
941
|
+
agentBlockId,
|
|
942
|
+
agentChatId,
|
|
943
|
+
chatId,
|
|
944
|
+
currentThreadId,
|
|
945
|
+
noPersistency,
|
|
946
|
+
shortTermMemory,
|
|
947
|
+
chatContextFiles,
|
|
948
|
+
chatContext,
|
|
949
|
+
requestMessages,
|
|
950
|
+
messageId,
|
|
951
|
+
input,
|
|
952
|
+
}),
|
|
953
|
+
});
|
|
954
|
+
try {
|
|
955
|
+
await sendCopilotMessage(userCopilotMessage);
|
|
956
|
+
}
|
|
957
|
+
finally {
|
|
958
|
+
copilotAgent.clearRequestOptions();
|
|
959
|
+
}
|
|
960
|
+
}, [
|
|
961
|
+
agentBlockId,
|
|
962
|
+
agentChatId,
|
|
963
|
+
appId,
|
|
964
|
+
chatId,
|
|
965
|
+
chatContext,
|
|
966
|
+
chatContextFiles,
|
|
967
|
+
copilotAgent,
|
|
968
|
+
currentThreadId,
|
|
969
|
+
noPersistency,
|
|
970
|
+
sendCopilotMessage,
|
|
971
|
+
setCopilotMessages,
|
|
972
|
+
shortTermMemory,
|
|
973
|
+
token,
|
|
974
|
+
]);
|
|
756
975
|
const sendMessage = useCallback(async ({ content, hiddenContent, ...message }) => {
|
|
757
976
|
try {
|
|
977
|
+
const pendingAskUser = findPendingAskUserToolCall(messages);
|
|
978
|
+
if (pendingAskUser?.toolCallId) {
|
|
979
|
+
await runHitlResume({
|
|
980
|
+
toolCallId: pendingAskUser.toolCallId,
|
|
981
|
+
toolName: ASK_USER_TOOL_NAME,
|
|
982
|
+
type: "ask_user",
|
|
983
|
+
answers: [],
|
|
984
|
+
skipped: true,
|
|
985
|
+
});
|
|
986
|
+
}
|
|
758
987
|
const messageId = generateId();
|
|
759
988
|
const uploadedAttachments = await uploadAttachments({ attachments: message.attachments, appId, token });
|
|
760
989
|
const userCopilotMessage = {
|
|
@@ -763,7 +992,12 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
763
992
|
content: content ?? "",
|
|
764
993
|
metadata: { version: 1, hiddenPrompt: hiddenContent ?? undefined },
|
|
765
994
|
};
|
|
766
|
-
|
|
995
|
+
// Read the latest messages snapshot (the closure value is stale after
|
|
996
|
+
// the awaited skipped resume — it still reflects the state before the
|
|
997
|
+
// resume's stream populated copilotMessages with the resolved tool
|
|
998
|
+
// result and any AI follow-up).
|
|
999
|
+
const latestMessages = messagesRef.current;
|
|
1000
|
+
const requestMessages = latestMessages
|
|
767
1001
|
.map(messageItemToCopilotMessage)
|
|
768
1002
|
.filter((requestMessage) => Boolean(requestMessage));
|
|
769
1003
|
setCopilotMessages(requestMessages);
|
|
@@ -813,6 +1047,7 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
813
1047
|
currentThreadId,
|
|
814
1048
|
messages,
|
|
815
1049
|
noPersistency,
|
|
1050
|
+
runHitlResume,
|
|
816
1051
|
sendCopilotMessage,
|
|
817
1052
|
setCopilotMessages,
|
|
818
1053
|
shortTermMemory,
|
|
@@ -820,6 +1055,21 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
820
1055
|
initialAgentMessages,
|
|
821
1056
|
useDynamicUI,
|
|
822
1057
|
]);
|
|
1058
|
+
const submitToolResume = useCallback(async (input) => {
|
|
1059
|
+
try {
|
|
1060
|
+
await runHitlResume(input);
|
|
1061
|
+
}
|
|
1062
|
+
catch (error) {
|
|
1063
|
+
addCopilotErrorMessage(error);
|
|
1064
|
+
}
|
|
1065
|
+
}, [addCopilotErrorMessage, runHitlResume]);
|
|
1066
|
+
const submitAskUserAnswers = useCallback(async (input) => {
|
|
1067
|
+
await submitToolResume({
|
|
1068
|
+
...input,
|
|
1069
|
+
toolName: input.toolName ?? ASK_USER_TOOL_NAME,
|
|
1070
|
+
type: "ask_user",
|
|
1071
|
+
});
|
|
1072
|
+
}, [submitToolResume]);
|
|
823
1073
|
useAgentChatDataInitialization({
|
|
824
1074
|
agentChatData,
|
|
825
1075
|
addMessages: addExternalMessages,
|
|
@@ -828,7 +1078,7 @@ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, chi
|
|
|
828
1078
|
isAgentReady: hasMounted && (!isPersistentFlow || (!isFetchingMessages && fetchedMessages.length === 0)),
|
|
829
1079
|
});
|
|
830
1080
|
const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
|
|
831
|
-
return (_jsx(AgentChatContextProvider, { ...inputState, messages: messages, initialAgentMessages: initialAgentMessages, isThinking: isThinking, isFetchingMessages: isFetchingMessages, currentThreadId: currentThreadId, agentChatData: agentChatData, sendMessage: sendMessage, addMessages: addExternalMessages, setCurrentThreadId: setCurrentThreadId, appId: appId, token: token, agentBlockId: agentBlockId, agentChatId: agentChatId, chatId: chatId, noPersistency: noPersistency, children: children }));
|
|
1081
|
+
return (_jsx(AgentChatContextProvider, { ...inputState, messages: messages, initialAgentMessages: initialAgentMessages, isThinking: isThinking, isFetchingMessages: isFetchingMessages, currentThreadId: currentThreadId, agentChatData: agentChatData, sendMessage: sendMessage, submitToolResume: submitToolResume, submitAskUserAnswers: submitAskUserAnswers, addMessages: addExternalMessages, setCurrentThreadId: setCurrentThreadId, appId: appId, token: token, agentBlockId: agentBlockId, agentChatId: agentChatId, chatId: chatId, noPersistency: noPersistency, children: children }));
|
|
832
1082
|
}
|
|
833
1083
|
const AgentChatVoiceContext = createContext(null);
|
|
834
1084
|
const noopVoice = {
|