@blocksdiy/react-common 1.7.0 → 1.8.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.
|
@@ -47,6 +47,7 @@ export interface AgentChatContextValue {
|
|
|
47
47
|
setThreadIds: React.Dispatch<SetStateAction<string[]>>;
|
|
48
48
|
appId: string;
|
|
49
49
|
token?: string;
|
|
50
|
+
agentBlockId?: string;
|
|
50
51
|
agentChatId?: string;
|
|
51
52
|
chatId?: string;
|
|
52
53
|
noPersistency?: boolean;
|
|
@@ -70,6 +71,13 @@ export interface AgentChatData {
|
|
|
70
71
|
export interface AgentChatRootProps {
|
|
71
72
|
appId: string;
|
|
72
73
|
token?: string;
|
|
74
|
+
/** Agent persona block id — used for direct AgentBlockService chat when `useAgentBlockDirectChat` is true. */
|
|
75
|
+
agentBlockId?: string;
|
|
76
|
+
/**
|
|
77
|
+
* When true with `agentBlockId`, uses `runAgentBlockChat` instead of the workflow.
|
|
78
|
+
* Set from the host app’s `useFlag("new-agent")` (Remix). Defaults to true for hosted/compiled apps that do not pass it.
|
|
79
|
+
*/
|
|
80
|
+
useAgentBlockDirectChat?: boolean;
|
|
73
81
|
agentChatId?: string;
|
|
74
82
|
defaultThreadId?: string;
|
|
75
83
|
noPersistency?: boolean;
|
|
@@ -80,7 +88,7 @@ export interface AgentChatRootProps {
|
|
|
80
88
|
agentChatData?: AgentChatData;
|
|
81
89
|
memoryEnabled?: boolean;
|
|
82
90
|
}
|
|
83
|
-
export declare const AgentChatRoot: ({ appId, token, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled, }: AgentChatRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
91
|
+
export declare const AgentChatRoot: ({ appId, token, agentBlockId, useAgentBlockDirectChat, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled, }: AgentChatRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
84
92
|
export interface AgentChatVoiceContextValue {
|
|
85
93
|
isConnected: boolean;
|
|
86
94
|
isConnecting: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/agent-chat.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/agent-chat.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { AppVersionService, DataApiService, websocketsService } from "@blocksdiy/blocks-client-api";
|
|
3
|
+
import { runAgentBlockChat } from "@blocksdiy/blocks-client-api";
|
|
3
4
|
import { getApiHost } from "@blocksdiy/blocks-client-api/envService";
|
|
4
5
|
import { WorkflowRequest } from "@blocksdiy/blocks-client-api/workflowService";
|
|
5
6
|
import { Slot } from "@radix-ui/react-slot";
|
|
@@ -9,6 +10,10 @@ import { useVoiceCall } from "../hooks/use-voice-call.js";
|
|
|
9
10
|
const CHAT_AGENT_HISTORY_TABLE_BLOCK_ID = "688ed13adefd8b565c779b8e";
|
|
10
11
|
const CHAT_AGENT_CALL_ACTION_BLOCK_ID = "688ed4d77b454b1fdaf5cf2d";
|
|
11
12
|
/* end of blocks common */
|
|
13
|
+
/** Dedupe auto-run of `initialPrompt` across remounts when history is still empty (e.g. failed first request). */
|
|
14
|
+
function agentChatInitialPromptStorageKey(appId, agentChatId, chatId, threadId) {
|
|
15
|
+
return `blocks:agentChat:initialPromptSent:${appId}:${agentChatId ?? ""}:${chatId ?? ""}:${threadId ?? ""}`;
|
|
16
|
+
}
|
|
12
17
|
// File upload constraints
|
|
13
18
|
const MAX_FILE_SIZE_MB = 5;
|
|
14
19
|
const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
|
|
@@ -113,7 +118,7 @@ const uploadAttachments = async ({ attachments, token, appId, }) => {
|
|
|
113
118
|
: undefined;
|
|
114
119
|
return uploadAttachments;
|
|
115
120
|
};
|
|
116
|
-
export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, }) => {
|
|
121
|
+
export const AgentChatRoot = ({ appId, token, agentBlockId, useAgentBlockDirectChat = true, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, }) => {
|
|
117
122
|
const [prompt, setPrompt] = useState("");
|
|
118
123
|
const [attachments, setAttachments] = useState([]);
|
|
119
124
|
const [messages, setMessages] = useState([]);
|
|
@@ -220,27 +225,50 @@ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noP
|
|
|
220
225
|
appId,
|
|
221
226
|
token,
|
|
222
227
|
});
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
}
|
|
243
|
-
}
|
|
228
|
+
let result;
|
|
229
|
+
if (agentBlockId && useAgentBlockDirectChat) {
|
|
230
|
+
result = (await runAgentBlockChat({
|
|
231
|
+
token,
|
|
232
|
+
payload: {
|
|
233
|
+
appId,
|
|
234
|
+
agentBlockId,
|
|
235
|
+
agentChatId,
|
|
236
|
+
chatId,
|
|
237
|
+
noPersistency,
|
|
238
|
+
prompt: content ?? "",
|
|
239
|
+
hiddenPrompt: hiddenContent ?? "",
|
|
240
|
+
files: uploadedAttachments,
|
|
241
|
+
messages: messages.map((m) => m.msg),
|
|
242
|
+
threadId: currentThreadId,
|
|
243
|
+
chatContextFiles,
|
|
244
|
+
chatContext: chatContext ? `Context: \n${JSON.stringify(chatContext)}` : undefined,
|
|
245
|
+
memoryEnabled,
|
|
246
|
+
},
|
|
247
|
+
}));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
result = await WorkflowRequest.run({
|
|
251
|
+
workflowBlockId: CHAT_AGENT_CALL_ACTION_BLOCK_ID,
|
|
252
|
+
appId,
|
|
253
|
+
token,
|
|
254
|
+
context: { appId, agentChatId },
|
|
255
|
+
input: {
|
|
256
|
+
prompt: content ?? "",
|
|
257
|
+
hiddenPrompt: hiddenContent ?? "",
|
|
258
|
+
files: uploadedAttachments,
|
|
259
|
+
messages: messages.map((m) => m.msg),
|
|
260
|
+
chatId,
|
|
261
|
+
noPersistency,
|
|
262
|
+
threadId: currentThreadId,
|
|
263
|
+
chatContextFiles,
|
|
264
|
+
chatContext: chatContext ? `Context: \n${JSON.stringify(chatContext)}` : undefined,
|
|
265
|
+
memoryEnabled,
|
|
266
|
+
},
|
|
267
|
+
onChunk: (chunk) => {
|
|
268
|
+
updateMessageWithChunk(chunk.msgId, { content: chunk.content });
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
}
|
|
244
272
|
addMessages(result.messages);
|
|
245
273
|
}
|
|
246
274
|
catch (error) {
|
|
@@ -263,6 +291,8 @@ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noP
|
|
|
263
291
|
}, [
|
|
264
292
|
addMessages,
|
|
265
293
|
updateMessageWithChunk,
|
|
294
|
+
agentBlockId,
|
|
295
|
+
useAgentBlockDirectChat,
|
|
266
296
|
agentChatId,
|
|
267
297
|
appId,
|
|
268
298
|
messages,
|
|
@@ -278,6 +308,10 @@ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noP
|
|
|
278
308
|
if (!agentChatData || initializedAgentChatDataRef.current) {
|
|
279
309
|
return;
|
|
280
310
|
}
|
|
311
|
+
// Wait until persisted history is loaded so we do not treat an existing thread as "first open".
|
|
312
|
+
if (!noPersistency && isFetchingMessages) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
281
315
|
const { initialMessages, initialPrompt } = agentChatData;
|
|
282
316
|
if (initialMessages && initialMessages.length > 0) {
|
|
283
317
|
setMessages((prevMessages) => {
|
|
@@ -295,11 +329,47 @@ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noP
|
|
|
295
329
|
];
|
|
296
330
|
});
|
|
297
331
|
}
|
|
298
|
-
|
|
299
|
-
|
|
332
|
+
const hasInitialPrompt = Boolean(initialPrompt?.content || initialPrompt?.hiddenContent);
|
|
333
|
+
if (hasInitialPrompt) {
|
|
334
|
+
const hasPersistedHumanTurn = messages.some((m) => m.msg.role === "human");
|
|
335
|
+
let alreadySentThisSession = false;
|
|
336
|
+
if (typeof sessionStorage !== "undefined") {
|
|
337
|
+
try {
|
|
338
|
+
alreadySentThisSession =
|
|
339
|
+
sessionStorage.getItem(agentChatInitialPromptStorageKey(appId, agentChatId, chatId, currentThreadId)) ===
|
|
340
|
+
"1";
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
// private mode / blocked storage
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
if (!hasPersistedHumanTurn && !alreadySentThisSession) {
|
|
347
|
+
if (typeof sessionStorage !== "undefined") {
|
|
348
|
+
try {
|
|
349
|
+
sessionStorage.setItem(agentChatInitialPromptStorageKey(appId, agentChatId, chatId, currentThreadId), "1");
|
|
350
|
+
}
|
|
351
|
+
catch {
|
|
352
|
+
// ignore
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
void sendMessage({
|
|
356
|
+
content: initialPrompt?.content,
|
|
357
|
+
hiddenContent: initialPrompt?.hiddenContent,
|
|
358
|
+
});
|
|
359
|
+
}
|
|
300
360
|
}
|
|
301
361
|
initializedAgentChatDataRef.current = true;
|
|
302
|
-
}, [
|
|
362
|
+
}, [
|
|
363
|
+
agentChatData,
|
|
364
|
+
sendMessage,
|
|
365
|
+
isFetchingMessages,
|
|
366
|
+
noPersistency,
|
|
367
|
+
messages,
|
|
368
|
+
appId,
|
|
369
|
+
agentChatId,
|
|
370
|
+
chatId,
|
|
371
|
+
currentThreadId,
|
|
372
|
+
]);
|
|
303
373
|
const sendFromInputs = useCallback(async () => {
|
|
304
374
|
if (isThinking || isFetchingMessages || (!prompt && attachments.length === 0)) {
|
|
305
375
|
return;
|
|
@@ -343,6 +413,7 @@ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noP
|
|
|
343
413
|
// Config
|
|
344
414
|
appId,
|
|
345
415
|
token,
|
|
416
|
+
agentBlockId,
|
|
346
417
|
agentChatId,
|
|
347
418
|
chatId,
|
|
348
419
|
noPersistency,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocksdiy/react-common",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React common",
|
|
6
6
|
"keywords": [],
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"penpal": "^7.0.6",
|
|
35
35
|
"@vapi-ai/web": "^2.5.2",
|
|
36
36
|
"react": "^19.2.4",
|
|
37
|
-
"@blocksdiy/blocks-client-api": "1.
|
|
37
|
+
"@blocksdiy/blocks-client-api": "1.8.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/react": "^19.2.14",
|