@blocksdiy/react-common 1.24.0 → 1.25.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,6 +1,5 @@
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";
4
3
  export interface Attachment {
5
4
  url: string;
6
5
  fileType: string;
@@ -25,73 +24,7 @@ export interface LegacyMessagePayload {
25
24
  payload: Record<string, any>;
26
25
  hiddenContent?: string;
27
26
  }
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
- }
70
- type CopilotMessageMetadata = {
71
- version?: 1;
72
- hiddenPrompt?: string;
73
- kind?: "tool-resume";
74
- };
75
- type CopilotToolCall = {
76
- id?: string;
77
- name?: string;
78
- args?: unknown;
79
- input?: unknown;
80
- function?: {
81
- name?: string;
82
- arguments?: unknown;
83
- };
84
- };
85
- type CopilotMessage = {
86
- id?: string;
87
- role?: string;
88
- content?: string;
89
- metadata?: CopilotMessageMetadata;
90
- toolCalls?: CopilotToolCall[];
91
- toolCallId?: string;
92
- name?: string;
93
- };
94
- export type PersistedMessagePayload = LegacyMessagePayload | CopilotMessage;
27
+ export type PersistedMessagePayload = LegacyMessagePayload;
95
28
  interface MessageItemBase {
96
29
  createdAt: string;
97
30
  createdBy?: string;
@@ -105,7 +38,6 @@ export type LegacyMessageItem = MessageItemBase & {
105
38
  export type MessageItem = LegacyMessageItem;
106
39
  export interface AgentChatContextValue {
107
40
  messages: MessageItem[];
108
- initialAgentMessages: MessageItem[];
109
41
  attachments: Attachment[];
110
42
  prompt: string;
111
43
  isThinking: boolean;
@@ -115,8 +47,6 @@ export interface AgentChatContextValue {
115
47
  threadIds: string[];
116
48
  agentChatData?: AgentChatData;
117
49
  sendMessage: (message: Omit<LegacyMessagePayload, "id" | "role" | "type" | "payload">) => Promise<void>;
118
- submitToolResume: (input: ToolResumeInput) => Promise<void>;
119
- submitAskUserAnswers: (input: SubmitAskUserAnswersInput) => Promise<void>;
120
50
  sendFromInputs: () => Promise<void>;
121
51
  addMessages: (newMessages: MessageItem[]) => void;
122
52
  addAttachments: (attachments: Attachment[]) => void;
@@ -129,15 +59,11 @@ export interface AgentChatContextValue {
129
59
  setThreadIds: React.Dispatch<SetStateAction<string[]>>;
130
60
  appId: string;
131
61
  token?: string;
132
- agentBlockId?: string;
133
62
  agentChatId?: string;
134
63
  chatId?: string;
135
64
  noPersistency?: boolean;
136
65
  }
137
66
  export declare const AgentChatContext: import("react").Context<AgentChatContextValue | null>;
138
- export declare const formatAskUserAnswerSummary: (answers: AskUserSubmittedAnswer[]) => string;
139
- export declare const buildToolResumeHiddenContent: ({ toolName, type, skipped, ...resumePayload }: ToolResumeInput) => string;
140
- export declare const buildAskUserAnswersHiddenContent: (input: SubmitAskUserAnswersInput) => string;
141
67
  export declare const useAgentChat: () => AgentChatContextValue;
142
68
  export interface ToolCardContextValue {
143
69
  open: boolean;
@@ -193,12 +119,6 @@ export interface AgentChatData {
193
119
  export interface AgentChatRootProps {
194
120
  appId: string;
195
121
  token?: string;
196
- /** Agent/persona block id used by the Python DeepAgent chat runtime. */
197
- agentBlockId?: string;
198
- /** Agent harness saved on the agent block. `deep_agent` implies the direct AI SDK transport. */
199
- agentHarness?: string;
200
- /** When true with `agentBlockId`, route direct Deep Agent chat through the AI SDK UI-message stream. */
201
- useAgentBlockDirectChat?: boolean;
202
122
  agentChatId?: string;
203
123
  defaultThreadId?: string;
204
124
  noPersistency?: boolean;
@@ -214,43 +134,8 @@ export interface AgentChatRootProps {
214
134
  };
215
135
  useDynamicUI?: boolean;
216
136
  }
217
- export type ResolvedAgentChatConfig = Pick<AgentChatRootProps, "agentBlockId" | "agentHarness" | "agentChatData" | "shortTermMemory" | "useDynamicUI">;
218
- interface HitlResumeRequestBodyInput {
219
- appId: string;
220
- agentBlockId?: string;
221
- agentChatId?: string;
222
- chatId?: string;
223
- currentThreadId?: string;
224
- noPersistency?: boolean;
225
- shortTermMemory: {
226
- isEnabled: boolean;
227
- isPersistent?: boolean;
228
- };
229
- chatContextFiles?: Attachment[];
230
- chatContext: unknown;
231
- requestMessages: CopilotMessage[];
232
- messageId: string;
233
- input: ToolResumeInput;
234
- }
235
- export declare const buildHitlResumeRequestBody: ({ appId, agentBlockId, agentChatId, chatId, currentThreadId, noPersistency, shortTermMemory, chatContextFiles, chatContext, requestMessages, messageId, input, }: HitlResumeRequestBodyInput) => {
236
- appId: string;
237
- agentBlockId: string | undefined;
238
- agentChatId: string | undefined;
239
- chatId: string | undefined;
240
- threadId: string | undefined;
241
- noPersistency: boolean | undefined;
242
- shortTermMemory: {
243
- isEnabled: boolean;
244
- isPersistent?: boolean;
245
- };
246
- chatContextFiles: Attachment[] | undefined;
247
- chatContext: string | undefined;
248
- files: never[];
249
- messages: CopilotMessage[];
250
- messageId: string;
251
- hitlResume: ToolResumeInput;
252
- };
253
- 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;
137
+ export type ResolvedAgentChatConfig = Pick<AgentChatRootProps, "agentChatData" | "shortTermMemory" | "useDynamicUI">;
138
+ export declare const AgentChatRoot: ({ appId, token, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled, shortTermMemory, useDynamicUI, }: AgentChatRootProps) => import("react/jsx-runtime").JSX.Element | null;
254
139
  export interface AgentChatVoiceContextValue {
255
140
  isConnected: boolean;
256
141
  isConnecting: 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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"}
@@ -1,11 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { HttpAgent } from "@ag-ui/client";
3
2
  import { AppVersionService, BlocksApiService, DataApiService, websocketsService } from "@blocksdiy/blocks-client-api";
4
3
  import { getApiHost } from "@blocksdiy/blocks-client-api/envService";
5
4
  import { WorkflowRequest } from "@blocksdiy/blocks-client-api/workflowService";
6
- import { CopilotKit, useCopilotChatInternal } from "@copilotkit/react-core";
7
5
  import { Slot } from "@radix-ui/react-slot";
8
- import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
6
+ import { createContext, useCallback, useContext, useEffect, useRef, useState } from "react";
9
7
  import { useVoiceCall } from "../hooks/use-voice-call.js";
10
8
  /* public decouple - blocks common */
11
9
  const CHAT_AGENT_HISTORY_TABLE_BLOCK_ID = "688ed13adefd8b565c779b8e";
@@ -15,7 +13,6 @@ const CHAT_AGENT_CALL_ACTION_BLOCK_ID = "688ed4d77b454b1fdaf5cf2d";
15
13
  const MAX_FILE_SIZE_MB = 5;
16
14
  const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
17
15
  const DEFAULT_SHORT_TERM_MEMORY = { isEnabled: true, isPersistent: true };
18
- export const ASK_USER_TOOL_NAME = "ask_user";
19
16
  const validateAndConvertFiles = (files) => {
20
17
  if (files.length === 0) {
21
18
  return null;
@@ -37,235 +34,12 @@ const generateId = (length = 10) => {
37
34
  .toString(36)
38
35
  .substring(2, 2 + length);
39
36
  };
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
- };
120
- class BlocksCopilotHttpAgent extends HttpAgent {
121
- requestHeaders = {};
122
- requestBody = {};
123
- constructor({ url }) {
124
- super({ url, headers: {} });
125
- this.subscribe(createDuplicateToolCallSuppressor());
126
- }
127
- setRequestOptions({ headers, body }) {
128
- this.requestHeaders = headers;
129
- this.requestBody = body;
130
- }
131
- clearRequestOptions() {
132
- this.requestHeaders = {};
133
- this.requestBody = {};
134
- }
135
- requestInit(input) {
136
- const init = super.requestInit({ ...input, ...this.requestBody });
137
- return {
138
- ...init,
139
- headers: {
140
- ...init.headers,
141
- ...this.requestHeaders,
142
- },
143
- };
144
- }
145
- }
146
- const parseMaybeJson = (value) => {
147
- if (typeof value !== "string") {
148
- return value;
149
- }
150
- try {
151
- return JSON.parse(value);
152
- }
153
- catch {
154
- return value;
155
- }
156
- };
157
- const legacyPayloadToCopilotMessage = (message) => ({
158
- id: message.id,
159
- role: message.role === "human" ? "user" : "assistant",
160
- content: message.content ?? "",
161
- metadata: {
162
- version: 1,
163
- hiddenPrompt: message.hiddenContent,
164
- },
165
- ...(Array.isArray(message.payload?.toolCalls) ? { toolCalls: message.payload.toolCalls } : {}),
166
- });
167
- const messageItemToCopilotMessage = (message) => {
168
- if (isToolResumeHiddenContent(message.msg.hiddenContent)) {
169
- return null;
170
- }
171
- return legacyPayloadToCopilotMessage(message.msg);
172
- };
173
- const normalizeCopilotToolCall = (toolCall, allMessages) => {
174
- const toolCallId = toolCall.id;
175
- const toolName = toolCall.function?.name ?? toolCall.name ?? "tool";
176
- const toolResult = toolCallId
177
- ? allMessages.find((candidate) => candidate.role === "tool" && candidate.toolCallId === toolCallId)
178
- : undefined;
179
- return {
180
- ...toolCall,
181
- type: `tool-${toolName}`,
182
- toolCallId,
183
- toolName,
184
- state: toolResult ? "output-available" : "input-available",
185
- input: parseMaybeJson(toolCall.function?.arguments ?? toolCall.args ?? toolCall.input),
186
- ...(toolResult ? { output: parseMaybeJson(toolResult.content) } : {}),
187
- };
188
- };
189
- const copilotMessageToLegacyPayload = (message, allMessages = []) => {
190
- if (isToolResumeCopilotMessage(message)) {
37
+ const messageItemToLegacyPayload = (message) => message.msg;
38
+ const storedMessageToLegacyView = (message) => {
39
+ if (message.msg.role !== "human" && message.msg.role !== "ai") {
191
40
  return null;
192
41
  }
193
- if (!message.id || (message.role !== "user" && message.role !== "assistant")) {
194
- return null;
195
- }
196
- if (message.role === "user" && !message.content && message.metadata?.hiddenPrompt) {
197
- return null;
198
- }
199
- const toolCalls = message.toolCalls?.map((toolCall) => normalizeCopilotToolCall(toolCall, allMessages)) ?? [];
200
- return {
201
- id: message.id,
202
- role: message.role === "user" ? "human" : "ai",
203
- type: "text",
204
- content: message.content ?? "",
205
- hiddenContent: message.metadata?.hiddenPrompt,
206
- payload: toolCalls.length ? { toolCalls } : {},
207
- };
208
- };
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
- };
237
- const appendCopilotErrorMessage = (messages, error) => {
238
- const text = "Error: " + (error instanceof Error ? error.message : "Unknown error");
239
- const lastMessage = messages[messages.length - 1];
240
- if (lastMessage?.role === "assistant" && lastMessage.content === text) {
241
- return messages;
242
- }
243
- return [
244
- ...messages,
245
- {
246
- id: generateId(10),
247
- role: "assistant",
248
- content: text,
249
- metadata: { version: 1 },
250
- },
251
- ];
252
- };
253
- const storedMessageToLegacyView = (message, allMessages = []) => {
254
- if ("type" in message.msg) {
255
- if (message.msg.role !== "human" && message.msg.role !== "ai") {
256
- return null;
257
- }
258
- return message;
259
- }
260
- const legacyPayload = copilotMessageToLegacyPayload(message.msg, allMessages);
261
- if (legacyPayload) {
262
- return {
263
- ...message,
264
- createdAt: message.createdAt,
265
- msg: legacyPayload,
266
- };
267
- }
268
- return null;
42
+ return message;
269
43
  };
270
44
  export const useAgentChat = () => {
271
45
  const context = useContext(AgentChatContext);
@@ -421,10 +195,7 @@ const resolveAgentChatConfig = async ({ agentChatId, token, }) => {
421
195
  const agentBlock = await blocksApiService.getBlock(agentBlockId);
422
196
  agentBlockData = agentBlock?.data;
423
197
  }
424
- const agentHarness = typeof agentBlockData?.harness === "string" ? agentBlockData.harness : undefined;
425
198
  return {
426
- agentBlockId: agentHarness ? agentBlockId : undefined,
427
- agentHarness,
428
199
  shortTermMemory: agentChatBlockData?.shortTermMemory ?? DEFAULT_SHORT_TERM_MEMORY,
429
200
  useDynamicUI: agentChatBlockData?.useDynamicUI,
430
201
  agentChatData: {
@@ -450,36 +221,7 @@ const createInitialAgentMessages = (initialMessages = []) => initialMessages
450
221
  msg: { id, role: "ai", type: "text", content: initialMessage.content, payload: {} },
451
222
  };
452
223
  });
453
- const mergeMessageItemsById = (currentMessages, incomingMessages) => {
454
- const nextMessages = [...currentMessages];
455
- for (const incomingMessage of incomingMessages) {
456
- const existingIndex = nextMessages.findIndex((message) => message.msg.id === incomingMessage.msg.id);
457
- if (existingIndex !== -1) {
458
- nextMessages[existingIndex] = incomingMessage;
459
- }
460
- else {
461
- nextMessages.push(incomingMessage);
462
- }
463
- }
464
- nextMessages.sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
465
- return nextMessages;
466
- };
467
224
  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
- });
483
225
  function useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage, }) {
484
226
  const [prompt, setPrompt] = useState("");
485
227
  const [attachments, setAttachments] = useState([]);
@@ -518,42 +260,32 @@ function useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage, }
518
260
  setThreadIds,
519
261
  };
520
262
  }
521
- function useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage, isPersistentFlow, isAgentReady = true, }) {
263
+ function useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage, }) {
522
264
  const initializedAgentChatDataRef = useRef(false);
523
265
  useEffect(() => {
524
266
  if (!agentChatData || initializedAgentChatDataRef.current) {
525
267
  return;
526
268
  }
527
- if (!isAgentReady) {
528
- return;
529
- }
530
269
  const { initialMessages, initialPrompt } = agentChatData;
531
- // Persistent flow seeds initial messages via `initialAgentMessages`.
532
- if (!isPersistentFlow && initialMessages && initialMessages.length > 0) {
270
+ if (initialMessages && initialMessages.length > 0) {
533
271
  addMessages(createInitialAgentMessages(initialMessages));
534
272
  }
535
273
  if (initialPrompt?.content || initialPrompt?.hiddenContent) {
536
274
  sendMessage({ content: initialPrompt?.content, hiddenContent: initialPrompt?.hiddenContent });
537
275
  }
538
276
  initializedAgentChatDataRef.current = true;
539
- }, [agentChatData, sendMessage, addMessages, isPersistentFlow, isAgentReady]);
277
+ }, [agentChatData, sendMessage, addMessages]);
540
278
  }
541
279
  function AgentChatContextProvider({ children, ...value }) {
542
280
  return _jsx(AgentChatContext.Provider, { value: value, children: children });
543
281
  }
544
- export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAgentBlockDirectChat, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory, useDynamicUI, }) => {
282
+ export const AgentChatRoot = ({ appId, token, agentChatId, children, chatId, noPersistency, defaultThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory, useDynamicUI, }) => {
545
283
  const [resolvedAgentChatConfig, setResolvedAgentChatConfig] = useState(null);
546
284
  const isResolvingAgentChatConfig = Boolean(agentChatId && !resolvedAgentChatConfig);
547
- const effectiveAgentBlockId = resolvedAgentChatConfig?.agentBlockId ?? agentBlockId;
548
- const effectiveAgentHarness = resolvedAgentChatConfig?.agentHarness ?? agentHarness;
549
285
  const effectiveAgentChatData = agentChatData ?? resolvedAgentChatConfig?.agentChatData;
550
286
  const effectiveShortTermMemory = shortTermMemory ?? resolvedAgentChatConfig?.shortTermMemory ?? DEFAULT_SHORT_TERM_MEMORY;
551
287
  const effectiveUseDynamicUI = useDynamicUI ?? resolvedAgentChatConfig?.useDynamicUI;
552
- const shouldUseAgentBlockDirectChat = useAgentBlockDirectChat ?? effectiveAgentHarness === "deep_agent";
553
- const isNewAgent = Boolean(effectiveAgentBlockId && shouldUseAgentBlockDirectChat);
554
- // isPersistent supersedes noPersistency on the new direct-chat path.
555
- const isPersistentFlow = isNewAgent && Boolean(effectiveShortTermMemory?.isPersistent);
556
- const effectiveNoPersistency = isNewAgent ? !effectiveShortTermMemory?.isPersistent : Boolean(noPersistency);
288
+ const effectiveNoPersistency = Boolean(noPersistency);
557
289
  const [isFetchingMessages, setIsFetchingMessages] = useState(!effectiveNoPersistency);
558
290
  const [currentThreadId, setCurrentThreadId] = useState(defaultThreadId);
559
291
  const [fetchedMessages, setFetchedMessages] = useState([]);
@@ -607,81 +339,13 @@ export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAge
607
339
  return () => {
608
340
  cancelled = true;
609
341
  };
610
- }, [appId, token, chatId, currentThreadId, effectiveNoPersistency, effectiveAgentChatData, isNewAgent]);
611
- // Stable ids per (chatId, threadId) — must match the ids the backend
612
- // persists so the stream echo merges by id in the UI.
613
- const initialAgentMessageIdsRef = useRef({});
614
- const initialAgentMessages = useMemo(() => {
615
- if (!isPersistentFlow || isFetchingMessages || fetchedMessages.length > 0) {
616
- return [];
617
- }
618
- const initialMessages = effectiveAgentChatData?.initialMessages;
619
- if (!initialMessages || initialMessages.length === 0) {
620
- return [];
621
- }
622
- const validMessages = initialMessages.filter((im) => typeof im?.content === "string" && im.content.length > 0);
623
- if (validMessages.length === 0) {
624
- return [];
625
- }
626
- const cacheKey = `${chatId ?? "_"}|${currentThreadId ?? "_"}`;
627
- const cached = initialAgentMessageIdsRef.current[cacheKey] ?? [];
628
- const ids = [];
629
- for (let i = 0; i < validMessages.length; i++) {
630
- ids.push(cached[i] ?? generateId());
631
- }
632
- initialAgentMessageIdsRef.current[cacheKey] = ids;
633
- return validMessages.map((initialMessage, i) => ({
634
- id: ids[i],
635
- createdAt: new Date(1).toISOString(),
636
- msg: {
637
- id: ids[i],
638
- role: "ai",
639
- type: "text",
640
- content: initialMessage.content,
641
- payload: {},
642
- },
643
- }));
644
- }, [
645
- isPersistentFlow,
646
- isFetchingMessages,
647
- fetchedMessages.length,
648
- effectiveAgentChatData?.initialMessages,
649
- chatId,
650
- currentThreadId,
651
- ]);
342
+ }, [appId, token, chatId, currentThreadId, effectiveNoPersistency, effectiveAgentChatData]);
652
343
  if (isResolvingAgentChatConfig) {
653
344
  return null;
654
345
  }
655
- const commonProps = {
656
- appId,
657
- token,
658
- agentBlockId: effectiveAgentBlockId,
659
- agentHarness: effectiveAgentHarness,
660
- useAgentBlockDirectChat,
661
- agentChatId,
662
- children,
663
- chatId,
664
- noPersistency,
665
- defaultThreadId,
666
- chatContext,
667
- chatContextFiles,
668
- agentChatData: effectiveAgentChatData,
669
- memoryEnabled,
670
- shortTermMemory: effectiveShortTermMemory,
671
- useDynamicUI: effectiveUseDynamicUI,
672
- isFetchingMessages,
673
- currentThreadId,
674
- setCurrentThreadId,
675
- fetchedMessages,
676
- initialAgentMessages,
677
- isPersistentFlow,
678
- };
679
- if (isNewAgent) {
680
- return _jsx(CopilotAgentChatRootProvider, { ...commonProps });
681
- }
682
- return _jsx(LegacyAgentChatProvider, { ...commonProps });
346
+ return (_jsx(LegacyAgentChatProvider, { appId: appId, token: token, agentChatId: agentChatId, chatId: chatId, noPersistency: noPersistency, defaultThreadId: defaultThreadId, chatContext: chatContext, chatContextFiles: chatContextFiles, agentChatData: effectiveAgentChatData, memoryEnabled: memoryEnabled, shortTermMemory: effectiveShortTermMemory, useDynamicUI: effectiveUseDynamicUI, isFetchingMessages: isFetchingMessages, currentThreadId: currentThreadId, setCurrentThreadId: setCurrentThreadId, fetchedMessages: fetchedMessages, children: children }));
683
347
  };
684
- function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory = { isEnabled: true, isPersistent: true }, isFetchingMessages, setCurrentThreadId, fetchedMessages, initialAgentMessages, isPersistentFlow, }) {
348
+ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory = { isEnabled: true, isPersistent: true }, isFetchingMessages, setCurrentThreadId, fetchedMessages, }) {
685
349
  const [messages, setMessages] = useState([]);
686
350
  const [isThinking, setIsThinking] = useState(false);
687
351
  const addMessages = useCallback((messagesToAdd) => {
@@ -803,282 +467,13 @@ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId,
803
467
  memoryEnabled,
804
468
  shortTermMemory,
805
469
  ]);
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]);
818
470
  useAgentChatDataInitialization({
819
471
  agentChatData,
820
472
  addMessages,
821
473
  sendMessage,
822
- isPersistentFlow,
823
- });
824
- const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
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 }));
826
- }
827
- function CopilotAgentChatRootProvider({ appId, token, ...props }) {
828
- const copilotRuntimeUrl = `${getApiHost()}/agent-chat-stream`;
829
- const agent = useMemo(() => new BlocksCopilotHttpAgent({ url: copilotRuntimeUrl }), [copilotRuntimeUrl]);
830
- const agents = useMemo(() => ({ default: agent }), [agent]);
831
- return (_jsx(CopilotKit, { runtimeUrl: copilotRuntimeUrl, agents__unsafe_dev_only: agents, children: _jsx(CopilotAgentChatProvider, { ...props, appId: appId, token: token, copilotAgent: agent }) }));
832
- }
833
- function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, shortTermMemory = { isEnabled: true, isPersistent: true }, useDynamicUI, isFetchingMessages, setCurrentThreadId, fetchedMessages, initialAgentMessages, isPersistentFlow, copilotAgent, }) {
834
- const [externalMessages, setExternalMessages] = useState([]);
835
- const copilotMessageCreatedAtByIdRef = useRef({});
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([]);
842
- const copilotChatId = useMemo(() => [appId, agentChatId, chatId, currentThreadId].filter(Boolean).join(":"), [appId, agentChatId, chatId, currentThreadId]);
843
- const { messages: copilotMessages, sendMessage: sendCopilotMessage, setMessages: setCopilotMessages, isLoading: isCopilotLoading, } = useCopilotChatInternal();
844
- // Wait one commit before firing the init send: CopilotKit's setup effect aborts the
845
- // HttpAgent's AbortController on cleanup, killing any in-flight stream started before
846
- // its `runtimeConnectionStatus` settles.
847
- const [hasMounted, setHasMounted] = useState(false);
848
- useEffect(() => {
849
- setHasMounted(true);
850
- }, []);
851
- useEffect(() => {
852
- if (previousCopilotChatIdRef.current === copilotChatId) {
853
- return;
854
- }
855
- previousCopilotChatIdRef.current = copilotChatId;
856
- copilotMessageCreatedAtByIdRef.current = {};
857
- setExternalMessages([]);
858
- setCopilotMessages([]);
859
- }, [copilotChatId, setCopilotMessages]);
860
- const copilotMessageItems = useMemo(() => copilotMessages
861
- .map((message) => {
862
- const legacyPayload = copilotMessageToLegacyPayload(message, copilotMessages);
863
- if (!legacyPayload) {
864
- return null;
865
- }
866
- copilotMessageCreatedAtByIdRef.current[legacyPayload.id] ??= new Date().toISOString();
867
- return {
868
- createdAt: copilotMessageCreatedAtByIdRef.current[legacyPayload.id],
869
- msg: legacyPayload,
870
- };
871
- })
872
- .filter((message) => Boolean(message)), [copilotMessages]);
873
- const messages = useMemo(() => {
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));
880
- // Seed initial agent messages so the stream echo merges by id and keeps the early createdAt.
881
- const nextMessages = mergeMessageItemsById(mergeMessageItemsById(initialAgentMessages, fetchedMessageItems), externalMessages);
882
- for (const messageItem of copilotMessageItems) {
883
- const existingIndex = nextMessages.findIndex((message) => message.msg.id === messageItem.msg.id);
884
- if (existingIndex !== -1) {
885
- nextMessages[existingIndex] = {
886
- ...nextMessages[existingIndex],
887
- ...messageItem,
888
- createdAt: nextMessages[existingIndex].createdAt,
889
- };
890
- }
891
- else {
892
- nextMessages.push(messageItem);
893
- }
894
- }
895
- nextMessages.sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
896
- return nextMessages;
897
- }, [copilotMessageItems, externalMessages, fetchedMessages, initialAgentMessages]);
898
- const isThinking = isCopilotLoading;
899
- useEffect(() => {
900
- messagesRef.current = messages;
901
- }, [messages]);
902
- const addExternalMessages = useCallback((messagesToAdd) => {
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));
909
- setExternalMessages((prevMessages) => mergeMessageItemsById(prevMessages, normalizedMessages));
910
- }, []);
911
- const addCopilotErrorMessage = useCallback((error) => {
912
- setCopilotMessages(appendCopilotErrorMessage(copilotMessages, error));
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
- ]);
975
- const sendMessage = useCallback(async ({ content, hiddenContent, ...message }) => {
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
- }
987
- const messageId = generateId();
988
- const uploadedAttachments = await uploadAttachments({ attachments: message.attachments, appId, token });
989
- const userCopilotMessage = {
990
- id: messageId,
991
- role: "user",
992
- content: content ?? "",
993
- metadata: { version: 1, hiddenPrompt: hiddenContent ?? undefined },
994
- };
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
1001
- .map(messageItemToCopilotMessage)
1002
- .filter((requestMessage) => Boolean(requestMessage));
1003
- setCopilotMessages(requestMessages);
1004
- copilotAgent.setRequestOptions({
1005
- headers: {
1006
- ...(token ? { Authorization: `Bearer ${token}` } : {}),
1007
- ...(AppVersionService.getCurrentVersionNumber()
1008
- ? { "x-app-version": String(AppVersionService.getCurrentVersionNumber()) }
1009
- : {}),
1010
- ...(websocketsService.getSocketId() ? { "x-socket-id": websocketsService.getSocketId() } : {}),
1011
- ...(appId ? { "x-app-id": appId } : {}),
1012
- },
1013
- body: {
1014
- appId,
1015
- agentBlockId,
1016
- agentChatId,
1017
- chatId,
1018
- threadId: currentThreadId,
1019
- noPersistency,
1020
- shortTermMemory,
1021
- useDynamicUI,
1022
- chatContextFiles,
1023
- chatContext: formatChatContext(chatContext),
1024
- files: uploadedAttachments,
1025
- messages: [...requestMessages, userCopilotMessage],
1026
- messageId,
1027
- initialMessageIds: initialAgentMessages.map((m) => m.msg.id),
1028
- },
1029
- });
1030
- await sendCopilotMessage(userCopilotMessage);
1031
- }
1032
- catch (error) {
1033
- addCopilotErrorMessage(error);
1034
- }
1035
- finally {
1036
- copilotAgent.clearRequestOptions();
1037
- }
1038
- }, [
1039
- addCopilotErrorMessage,
1040
- agentBlockId,
1041
- agentChatId,
1042
- appId,
1043
- chatId,
1044
- chatContext,
1045
- chatContextFiles,
1046
- copilotAgent,
1047
- currentThreadId,
1048
- messages,
1049
- noPersistency,
1050
- runHitlResume,
1051
- sendCopilotMessage,
1052
- setCopilotMessages,
1053
- shortTermMemory,
1054
- token,
1055
- initialAgentMessages,
1056
- useDynamicUI,
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]);
1073
- useAgentChatDataInitialization({
1074
- agentChatData,
1075
- addMessages: addExternalMessages,
1076
- sendMessage,
1077
- isPersistentFlow,
1078
- isAgentReady: hasMounted && (!isPersistentFlow || (!isFetchingMessages && fetchedMessages.length === 0)),
1079
474
  });
1080
475
  const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
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 }));
476
+ return (_jsx(AgentChatContextProvider, { ...inputState, messages: flattenLegacyMessages(messages), 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 }));
1082
477
  }
1083
478
  const AgentChatVoiceContext = createContext(null);
1084
479
  const noopVoice = {
@@ -1 +1 @@
1
- {"version":3,"file":"new-agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/new-agent-chat.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new-agent-chat.d.ts","sourceRoot":"","sources":["../../src/components/new-agent-chat.tsx"],"names":[],"mappings":"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"}
@@ -67,6 +67,9 @@ const validateAndConvertFiles = (files) => {
67
67
  url: URL.createObjectURL(file),
68
68
  }));
69
69
  };
70
+ const hasSendableInput = (prompt, attachments) => {
71
+ return prompt.trim().length > 0 || attachments.length > 0;
72
+ };
70
73
  export const AgentChatContext = createContext(null);
71
74
  export const useAgentChat = () => {
72
75
  const context = useContext(AgentChatContext);
@@ -162,16 +165,17 @@ const ChatInitializer = ({ agentId, agentChatId, chatId, token, appId, component
162
165
  }));
163
166
  return maybeComponentBlocks.filter((component) => Boolean(component));
164
167
  }, [blocksApiService, componentIds]);
165
- const sendAgentInitialPrompt = useCallback((agentInitialPrompt) => {
168
+ const componentIdsKey = componentIds?.join(",") ?? "";
169
+ const sendAgentInitialPrompt = useCallback(async (agentInitialPrompt) => {
166
170
  if (!agentInitialPrompt) {
167
171
  return;
168
172
  }
169
173
  const { content, hiddenContent } = agentInitialPrompt;
170
174
  if (content) {
171
- sendMessage({ content });
175
+ await sendMessage({ content });
172
176
  }
173
177
  if (hiddenContent) {
174
- sendMessage({ content: hiddenContent });
178
+ await sendMessage({ content: hiddenContent });
175
179
  }
176
180
  }, [sendMessage]);
177
181
  const initKeyRef = useRef(null);
@@ -185,7 +189,7 @@ const ChatInitializer = ({ agentId, agentChatId, chatId, token, appId, component
185
189
  currentThreadId ?? "",
186
190
  agentId ?? "",
187
191
  agentChatId ?? "",
188
- componentIds?.join(",") ?? "",
192
+ componentIdsKey,
189
193
  token ?? "",
190
194
  appId ?? "",
191
195
  ].join("|");
@@ -242,7 +246,7 @@ const ChatInitializer = ({ agentId, agentChatId, chatId, token, appId, component
242
246
  initialPromptSentRef.current = false;
243
247
  };
244
248
  // eslint-disable-next-line react-hooks/exhaustive-deps
245
- }, [chatId, currentThreadId, agentId, agentChatId, token, appId]);
249
+ }, [chatId, currentThreadId, agentId, agentChatId, componentIdsKey, token, appId]);
246
250
  // After CopilotKit's `connectAgent` resolves, the agent's message list
247
251
  // already reflects whatever the backend replayed (history + any
248
252
  // seeded initial messages). If the thread is still empty AND the
@@ -280,10 +284,10 @@ const ChatInitializer = ({ agentId, agentChatId, chatId, token, appId, component
280
284
  return;
281
285
  }
282
286
  initialPromptSentRef.current = true;
283
- sendAgentInitialPrompt(agentChat.initialPrompt);
287
+ void sendAgentInitialPrompt(agentChat.initialPrompt);
284
288
  }, [isAgentReady, isConfigLoaded, agentChat, copilotAgent, canSendMessage, sendAgentInitialPrompt]);
285
289
  const sendFromInputs = async () => {
286
- if (!canSendMessage) {
290
+ if (!canSendMessage || !hasSendableInput(prompt, attachments)) {
287
291
  return;
288
292
  }
289
293
  const currentPrompt = prompt;
@@ -433,8 +437,9 @@ export function AgentChatFetching({ asChild = false, ...props }) {
433
437
  return _jsx(Comp, { "data-slot": "agent-chat-fetching", ...props });
434
438
  }
435
439
  export function AgentChatInput({ asChild = false, onChange, onKeyDown, onPaste, onDragOver, onDragLeave, onDrop, onSubmit, acceptFiles = true, ...props }) {
436
- const { setIsDraggingFiles, addAttachments, prompt, setPrompt, sendFromInputs, isThinking, isAgentReady, isFetchingMessages, } = useAgentChat();
440
+ const { setIsDraggingFiles, addAttachments, attachments, prompt, setPrompt, sendFromInputs, isThinking, isAgentReady, isFetchingMessages, } = useAgentChat();
437
441
  const isDisabled = props.disabled || isThinking || !isAgentReady || isFetchingMessages;
442
+ const isSubmitDisabled = isDisabled || !hasSendableInput(prompt, attachments);
438
443
  const handleDragOver = useCallback((e) => {
439
444
  if (!acceptFiles) {
440
445
  return;
@@ -469,13 +474,13 @@ export function AgentChatInput({ asChild = false, onChange, onKeyDown, onPaste,
469
474
  const handleKeyDown = useCallback((e) => {
470
475
  if (e.key === "Enter" && !e.shiftKey) {
471
476
  e.preventDefault();
472
- if (isDisabled) {
477
+ if (isSubmitDisabled) {
473
478
  return;
474
479
  }
475
480
  onSubmit?.(e);
476
481
  sendFromInputs();
477
482
  }
478
- }, [isDisabled, onSubmit, sendFromInputs]);
483
+ }, [isSubmitDisabled, onSubmit, sendFromInputs]);
479
484
  const handleChange = useCallback((e) => {
480
485
  setPrompt(e.target.value);
481
486
  }, [setPrompt]);
@@ -525,20 +530,19 @@ export function AgentChatInput({ asChild = false, onChange, onKeyDown, onPaste,
525
530
  : onDrop, "data-slot": "agent-chat-input", ...props }));
526
531
  }
527
532
  export function AgentChatSendTrigger({ asChild = false, onClick, disabled, ...props }) {
528
- const { isThinking, isAgentReady, isFetchingMessages, sendFromInputs, stopGeneration } = useAgentChat();
533
+ const { attachments, prompt, isThinking, isAgentReady, isFetchingMessages, sendFromInputs /* , stopGeneration */ } = useAgentChat();
529
534
  const Comp = asChild ? Slot : "button";
530
- const isDisabled = disabled ?? (!isThinking && (!isAgentReady || isFetchingMessages));
535
+ const isDisabled = Boolean(disabled || isThinking || !isAgentReady || isFetchingMessages || !hasSendableInput(prompt, attachments));
531
536
  return (_jsx(Comp, { onClick: (e) => {
532
537
  if (isDisabled) {
533
538
  e.preventDefault();
534
539
  return;
535
540
  }
536
- if (isThinking) {
537
- stopGeneration();
538
- }
539
- else {
540
- sendFromInputs();
541
- }
541
+ // if (isThinking) {
542
+ // stopGeneration();
543
+ // } else {
544
+ sendFromInputs();
545
+ // }
542
546
  onClick?.(e);
543
547
  }, disabled: isDisabled, "data-slot": "agent-chat-send-trigger", ...props }));
544
548
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocksdiy/react-common",
3
- "version": "1.24.0",
3
+ "version": "1.25.0",
4
4
  "type": "module",
5
5
  "description": "React common",
6
6
  "keywords": [],