@blocksdiy/react-common 1.14.1 → 1.15.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,4 +1,3 @@
1
- import { type UIMessage } from "ai";
2
1
  import { ReactNode, SetStateAction } from "react";
3
2
  import { type VoiceCallMessage } from "../hooks/use-voice-call.js";
4
3
  export interface Attachment {
@@ -13,8 +12,7 @@ type MessageType = "progress" | "text" | "missing_integration";
13
12
  *
14
13
  * Consumers of `@blocksdiy/react-common/agent-chat` currently read `msg.content`,
15
14
  * `msg.role` (`human`/`ai`), `msg.attachments`, and the flattened compatibility
16
- * fields returned from `AgentChatContextValue.messages`. Keep this shape stable
17
- * while the runtime underneath moves to AI SDK `UIMessage` objects.
15
+ * fields returned from `AgentChatContextValue.messages`. Keep this shape stable.
18
16
  */
19
17
  export interface LegacyMessagePayload {
20
18
  id: string;
@@ -26,12 +24,30 @@ export interface LegacyMessagePayload {
26
24
  payload: Record<string, any>;
27
25
  hiddenContent?: string;
28
26
  }
29
- export type V1AiSdkMessagePayload = AgentChatUIMessage & {
30
- metadata: AgentChatUIMessage["metadata"] & {
31
- version: 1;
27
+ type CopilotMessageMetadata = {
28
+ version?: 1;
29
+ hiddenPrompt?: string;
30
+ };
31
+ type CopilotToolCall = {
32
+ id?: string;
33
+ name?: string;
34
+ args?: unknown;
35
+ input?: unknown;
36
+ function?: {
37
+ name?: string;
38
+ arguments?: unknown;
32
39
  };
33
40
  };
34
- export type PersistedMessagePayload = LegacyMessagePayload | V1AiSdkMessagePayload;
41
+ type CopilotMessage = {
42
+ id?: string;
43
+ role?: string;
44
+ content?: string;
45
+ metadata?: CopilotMessageMetadata;
46
+ toolCalls?: CopilotToolCall[];
47
+ toolCallId?: string;
48
+ name?: string;
49
+ };
50
+ export type PersistedMessagePayload = LegacyMessagePayload | CopilotMessage;
35
51
  interface MessageItemBase {
36
52
  createdAt: string;
37
53
  createdBy?: string;
@@ -42,12 +58,10 @@ interface MessageItemBase {
42
58
  export type LegacyMessageItem = MessageItemBase & {
43
59
  msg: LegacyMessagePayload;
44
60
  };
45
- export type V1AiSdkMessageItem = MessageItemBase & {
46
- msg: V1AiSdkMessagePayload;
47
- };
48
- export type MessageItem = LegacyMessageItem | V1AiSdkMessageItem;
61
+ export type MessageItem = LegacyMessageItem;
49
62
  export interface AgentChatContextValue {
50
63
  messages: MessageItem[];
64
+ initialAgentMessages: MessageItem[];
51
65
  attachments: Attachment[];
52
66
  prompt: string;
53
67
  isThinking: boolean;
@@ -74,15 +88,6 @@ export interface AgentChatContextValue {
74
88
  chatId?: string;
75
89
  noPersistency?: boolean;
76
90
  }
77
- export type AgentChatUIMessage = UIMessage & {
78
- metadata?: {
79
- version?: 1;
80
- hiddenPrompt?: string;
81
- };
82
- };
83
- export declare const isV1AiSdkMessageItem: (message: MessageItem) => message is V1AiSdkMessageItem;
84
- export declare const isLegacyMessageItem: (message: MessageItem) => message is LegacyMessageItem;
85
- export declare const uiMessageToV1MessageItem: (message: AgentChatUIMessage, createdAt?: string) => V1AiSdkMessageItem;
86
91
  export declare const useAgentChat: () => AgentChatContextValue;
87
92
  export interface ToolCardContextValue {
88
93
  open: boolean;
@@ -184,7 +189,7 @@ export interface AgentChatMessageProps {
184
189
  message: MessageItem;
185
190
  index: number;
186
191
  }
187
- export declare function AgentChatMessage({ message, index, ...props }: React.ComponentProps<"div"> & AgentChatMessageProps): import("react/jsx-runtime").JSX.Element | null;
192
+ export declare function AgentChatMessage({ message, index, ...props }: React.ComponentProps<"div"> & AgentChatMessageProps): import("react/jsx-runtime").JSX.Element;
188
193
  export interface AgentChatMessagesProps {
189
194
  asChild?: boolean;
190
195
  autoScroll?: 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":"AAMA,OAAO,EAEL,SAAS,EACT,cAAc,EAOf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAgB,KAAK,gBAAgB,EAA4B,MAAM,yBAAyB,CAAC;AAYxG,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAqBD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;AACzC,KAAK,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,qBAAqB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,cAAc,CAAC;AAE5E,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAAE,GAAG,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAG5C,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,oBAAoB,EAAE,WAAW,EAAE,CAAC;IACpC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAG9B,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxG,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;IACpD,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAG7B,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC7D,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,kBAAkB,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IACvE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAGvD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA0JD,eAAO,MAAM,YAAY,6BAMxB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAID,eAAO,MAAM,WAAW,4BAMvB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAe,EACf,WAAmB,EACnB,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,2CAyB7C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAe,EACf,eAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,eAAe,2CAU/C;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EACxB,OAAe,EACf,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,cAAc,2CAS9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,gBAAgB,2CAIxG;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAe,EACf,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,wBAAwB,2CAiB3D;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,gBAAgB,2CAKxG;AAiHD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,eAAe,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAiBD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wGAAwG;IACxG,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,gBAAgB,CAAC,EAAE,UAAU,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAClE;AAED,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,kBAAkB,EAClB,cAAc,GAAG,cAAc,GAAG,eAAe,GAAG,iBAAiB,CACtE,CAAC;AA4LF,eAAO,MAAM,aAAa,GAAI,qNAgB3B,kBAAkB,mDAuJpB,CAAC;AAgZF,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5E;AAkBD,eAAO,MAAM,iBAAiB,kCAG7B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,mBAAmB,2CA8P/D;AAID,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,qBAAqB,2CAEjH;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAe,EACf,UAAiB,EACjB,mBAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,sBAAsB,2CA0FtD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,sBAAsB,kDASpH;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,sBAAsB,kDASpH;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAkB,EAClB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,mBAAmB,2CA8IxD;AACD,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAe,EACf,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,yBAAyB,2CAe5D;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,OAAe,EACf,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,+BAA+B,2CAqDlE;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,wBAAwB,2CAIxD;AAED,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,UAAU,EACV,OAAe,EACf,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,8BAA8B,2CAcjE;AAID,MAAM,WAAW,+BAA+B;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,0BAA0B,CAAC,EACzC,OAAe,EACf,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,+BAA+B,2CAelE;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,wBAAwB,CAAC,EACvC,OAAe,EACf,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,6BAA6B,2CAehE;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,OAAe,EACf,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,8BAA8B,2CAiBjE;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,yBAAyB,2CAezD;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,OAAe,EACf,KAAK,EACL,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,yBAAyB,2CAiBzD"}
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useChat } from "@ai-sdk/react";
2
+ import { HttpAgent } from "@ag-ui/client";
3
3
  import { AppVersionService, BlocksApiService, DataApiService, websocketsService } from "@blocksdiy/blocks-client-api";
4
4
  import { getApiHost } from "@blocksdiy/blocks-client-api/envService";
5
5
  import { WorkflowRequest } from "@blocksdiy/blocks-client-api/workflowService";
6
+ import { CopilotKit, useCopilotChatInternal } from "@copilotkit/react-core";
6
7
  import { Slot } from "@radix-ui/react-slot";
7
- import { DefaultChatTransport } from "ai";
8
8
  import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
9
9
  import { useVoiceCall } from "../hooks/use-voice-call.js";
10
10
  /* public decouple - blocks common */
@@ -14,7 +14,7 @@ const CHAT_AGENT_CALL_ACTION_BLOCK_ID = "688ed4d77b454b1fdaf5cf2d";
14
14
  // File upload constraints
15
15
  const MAX_FILE_SIZE_MB = 5;
16
16
  const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024;
17
- const DEFAULT_SHORT_TERM_MEMORY = { isEnabled: true, isPersistent: false };
17
+ const DEFAULT_SHORT_TERM_MEMORY = { isEnabled: true, isPersistent: true };
18
18
  const validateAndConvertFiles = (files) => {
19
19
  if (files.length === 0) {
20
20
  return null;
@@ -36,77 +36,89 @@ const generateId = (length = 10) => {
36
36
  .toString(36)
37
37
  .substring(2, 2 + length);
38
38
  };
39
- const isV1AiSdkMessagePayload = (msg) => "metadata" in msg && msg.metadata?.version === 1;
40
- export const isV1AiSdkMessageItem = (message) => isV1AiSdkMessagePayload(message.msg);
41
- export const isLegacyMessageItem = (message) => !isV1AiSdkMessageItem(message);
42
- const attachmentsToUiFileParts = (attachments = []) => attachments.map((attachment) => ({
43
- type: "file",
44
- url: attachment.url,
45
- filename: attachment.fileName,
46
- mediaType: attachment.fileType,
47
- }));
48
- const uiMessageToLegacyPayload = (message) => {
49
- const text = message.parts
50
- .filter((part) => part.type === "text")
51
- .map((part) => part.text)
52
- .join("");
53
- const attachments = message.parts
54
- .filter((part) => part.type === "file")
55
- .map((part) => ({
56
- url: part.url,
57
- fileName: part.filename ?? "File",
58
- fileType: part.mediaType ?? "application/octet-stream",
59
- }));
60
- if (!text && attachments.length === 0) {
61
- return null;
39
+ class BlocksCopilotHttpAgent extends HttpAgent {
40
+ requestHeaders = {};
41
+ requestBody = {};
42
+ constructor({ url }) {
43
+ super({ url, headers: {} });
62
44
  }
63
- return {
64
- id: message.id,
65
- role: message.role === "user" ? "human" : "ai",
66
- type: "text",
67
- content: text,
68
- attachments: attachments.length > 0 ? attachments : undefined,
69
- hiddenContent: message.metadata?.hiddenPrompt,
70
- payload: {},
71
- };
72
- };
73
- const messageItemToLegacyPayload = (message) => {
74
- if (isLegacyMessageItem(message)) {
75
- return message.msg;
45
+ setRequestOptions({ headers, body }) {
46
+ this.requestHeaders = headers;
47
+ this.requestBody = body;
76
48
  }
77
- return uiMessageToLegacyPayload(message.msg);
78
- };
79
- const messageItemToUIMessage = (message) => {
80
- if (isV1AiSdkMessageItem(message)) {
81
- return message.msg;
49
+ clearRequestOptions() {
50
+ this.requestHeaders = {};
51
+ this.requestBody = {};
52
+ }
53
+ requestInit(input) {
54
+ const init = super.requestInit({ ...input, ...this.requestBody });
55
+ return {
56
+ ...init,
57
+ headers: {
58
+ ...init.headers,
59
+ ...this.requestHeaders,
60
+ },
61
+ };
62
+ }
63
+ }
64
+ const parseMaybeJson = (value) => {
65
+ if (typeof value !== "string") {
66
+ return value;
67
+ }
68
+ try {
69
+ return JSON.parse(value);
70
+ }
71
+ catch {
72
+ return value;
82
73
  }
74
+ };
75
+ const legacyPayloadToCopilotMessage = (message) => ({
76
+ id: message.id,
77
+ role: message.role === "human" ? "user" : "assistant",
78
+ content: message.content ?? "",
79
+ metadata: {
80
+ version: 1,
81
+ hiddenPrompt: message.hiddenContent,
82
+ },
83
+ });
84
+ const messageItemToCopilotMessage = (message) => {
85
+ return legacyPayloadToCopilotMessage(message.msg);
86
+ };
87
+ const normalizeCopilotToolCall = (toolCall, allMessages) => {
88
+ const toolCallId = toolCall.id;
89
+ const toolName = toolCall.function?.name ?? toolCall.name ?? "tool";
90
+ const toolResult = toolCallId
91
+ ? allMessages.find((candidate) => candidate.role === "tool" && candidate.toolCallId === toolCallId)
92
+ : undefined;
83
93
  return {
84
- id: message.msg.id,
85
- role: message.msg.role === "human" ? "user" : "assistant",
86
- parts: [{ type: "text", text: message.msg.content ?? "" }, ...attachmentsToUiFileParts(message.msg.attachments)],
87
- metadata: {
88
- version: 1,
89
- hiddenPrompt: message.msg.hiddenContent,
90
- },
94
+ ...toolCall,
95
+ type: `tool-${toolName}`,
96
+ toolCallId,
97
+ toolName,
98
+ state: toolResult ? "output-available" : "input-available",
99
+ input: parseMaybeJson(toolCall.function?.arguments ?? toolCall.args ?? toolCall.input),
100
+ ...(toolResult ? { output: parseMaybeJson(toolResult.content) } : {}),
91
101
  };
92
102
  };
93
- export const uiMessageToV1MessageItem = (message, createdAt = new Date().toISOString()) => {
103
+ const copilotMessageToLegacyPayload = (message, allMessages = []) => {
104
+ if (!message.id || (message.role !== "user" && message.role !== "assistant")) {
105
+ return null;
106
+ }
107
+ const toolCalls = message.toolCalls?.map((toolCall) => normalizeCopilotToolCall(toolCall, allMessages)) ?? [];
94
108
  return {
95
- createdAt,
96
- msg: {
97
- ...message,
98
- metadata: { ...message.metadata, version: 1 },
99
- },
109
+ id: message.id,
110
+ role: message.role === "user" ? "human" : "ai",
111
+ type: "text",
112
+ content: message.content ?? "",
113
+ hiddenContent: message.metadata?.hiddenPrompt,
114
+ payload: toolCalls.length ? { toolCalls } : {},
100
115
  };
101
116
  };
102
- const appendAiSdkErrorMessage = (messages, error) => {
117
+ const messageItemToLegacyPayload = (message) => message.msg;
118
+ const appendCopilotErrorMessage = (messages, error) => {
103
119
  const text = "Error: " + (error instanceof Error ? error.message : "Unknown error");
104
120
  const lastMessage = messages[messages.length - 1];
105
- const lastText = lastMessage?.parts
106
- ?.filter((part) => part.type === "text")
107
- .map((part) => part.text)
108
- .join("");
109
- if (lastMessage?.role === "assistant" && lastText === text) {
121
+ if (lastMessage?.role === "assistant" && lastMessage.content === text) {
110
122
  return messages;
111
123
  }
112
124
  return [
@@ -114,22 +126,33 @@ const appendAiSdkErrorMessage = (messages, error) => {
114
126
  {
115
127
  id: generateId(10),
116
128
  role: "assistant",
117
- parts: [{ type: "text", text }],
129
+ content: text,
118
130
  metadata: { version: 1 },
119
131
  },
120
132
  ];
121
133
  };
122
134
  const storedMessageToLegacyView = (message) => {
123
- if (isV1AiSdkMessagePayload(message.msg)) {
135
+ if ("type" in message.msg) {
136
+ return message;
137
+ }
138
+ const legacyPayload = copilotMessageToLegacyPayload(message.msg);
139
+ if (legacyPayload) {
124
140
  return {
125
- ...uiMessageToV1MessageItem(message.msg, message.createdAt),
141
+ ...message,
126
142
  createdAt: message.createdAt,
127
- id: message.id,
128
- chatId: message.chatId,
129
- threadId: message.threadId,
143
+ msg: legacyPayload,
130
144
  };
131
145
  }
132
- return message;
146
+ return {
147
+ ...message,
148
+ msg: {
149
+ id: message.msg.id ?? generateId(),
150
+ role: "ai",
151
+ type: "text",
152
+ content: "",
153
+ payload: {},
154
+ },
155
+ };
133
156
  };
134
157
  export const useAgentChat = () => {
135
158
  const context = useContext(AgentChatContext);
@@ -302,8 +325,10 @@ const resolveAgentChatConfig = async ({ agentChatId, token, }) => {
302
325
  },
303
326
  };
304
327
  };
305
- const flattenLegacyMessages = (messages) => messages.map((m) => (isV1AiSdkMessageItem(m) ? m : { ...m, ...m.msg }));
306
- const createInitialAgentMessages = (initialMessages = []) => initialMessages.map((initialMessage) => {
328
+ const flattenLegacyMessages = (messages) => messages.map((m) => ({ ...m, ...m.msg }));
329
+ const createInitialAgentMessages = (initialMessages = []) => initialMessages
330
+ .filter((im) => typeof im?.content === "string" && im.content.length > 0)
331
+ .map((initialMessage) => {
307
332
  const id = generateId();
308
333
  return {
309
334
  id,
@@ -364,21 +389,22 @@ function useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage, }
364
389
  setThreadIds,
365
390
  };
366
391
  }
367
- function useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage, }) {
392
+ function useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage, isPersistentFlow, }) {
368
393
  const initializedAgentChatDataRef = useRef(false);
369
394
  useEffect(() => {
370
395
  if (!agentChatData || initializedAgentChatDataRef.current) {
371
396
  return;
372
397
  }
373
398
  const { initialMessages, initialPrompt } = agentChatData;
374
- if (initialMessages && initialMessages.length > 0) {
399
+ // Persistent flow seeds initial messages via `initialAgentMessages`.
400
+ if (!isPersistentFlow && initialMessages && initialMessages.length > 0) {
375
401
  addMessages(createInitialAgentMessages(initialMessages));
376
402
  }
377
403
  if (initialPrompt?.content || initialPrompt?.hiddenContent) {
378
404
  sendMessage({ content: initialPrompt?.content, hiddenContent: initialPrompt?.hiddenContent });
379
405
  }
380
406
  initializedAgentChatDataRef.current = true;
381
- }, [agentChatData, sendMessage, addMessages]);
407
+ }, [agentChatData, sendMessage, addMessages, isPersistentFlow]);
382
408
  }
383
409
  function AgentChatContextProvider({ children, ...value }) {
384
410
  return _jsx(AgentChatContext.Provider, { value: value, children: children });
@@ -392,7 +418,10 @@ export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAge
392
418
  const effectiveShortTermMemory = shortTermMemory ?? resolvedAgentChatConfig?.shortTermMemory ?? DEFAULT_SHORT_TERM_MEMORY;
393
419
  const shouldUseAgentBlockDirectChat = useAgentBlockDirectChat ?? effectiveAgentHarness === "deep_agent";
394
420
  const isNewAgent = Boolean(effectiveAgentBlockId && shouldUseAgentBlockDirectChat);
395
- const [isFetchingMessages, setIsFetchingMessages] = useState(!noPersistency);
421
+ // isPersistent supersedes noPersistency on the new direct-chat path.
422
+ const isPersistentFlow = isNewAgent && Boolean(effectiveShortTermMemory?.isPersistent);
423
+ const effectiveNoPersistency = isNewAgent ? !effectiveShortTermMemory?.isPersistent : Boolean(noPersistency);
424
+ const [isFetchingMessages, setIsFetchingMessages] = useState(!effectiveNoPersistency);
396
425
  const [currentThreadId, setCurrentThreadId] = useState(defaultThreadId);
397
426
  const [fetchedMessages, setFetchedMessages] = useState([]);
398
427
  useEffect(() => {
@@ -418,7 +447,7 @@ export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAge
418
447
  }, [agentChatId, token]);
419
448
  useEffect(() => {
420
449
  let cancelled = false;
421
- if (noPersistency) {
450
+ if (effectiveNoPersistency) {
422
451
  setFetchedMessages([]);
423
452
  return;
424
453
  }
@@ -445,7 +474,48 @@ export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAge
445
474
  return () => {
446
475
  cancelled = true;
447
476
  };
448
- }, [appId, token, chatId, currentThreadId, noPersistency, effectiveAgentChatData, isNewAgent]);
477
+ }, [appId, token, chatId, currentThreadId, effectiveNoPersistency, effectiveAgentChatData, isNewAgent]);
478
+ // Stable ids per (chatId, threadId) — must match the ids the backend
479
+ // persists so the stream echo merges by id in the UI.
480
+ const initialAgentMessageIdsRef = useRef({});
481
+ const initialAgentMessages = useMemo(() => {
482
+ if (!isPersistentFlow || isFetchingMessages || fetchedMessages.length > 0) {
483
+ return [];
484
+ }
485
+ const initialMessages = effectiveAgentChatData?.initialMessages;
486
+ if (!initialMessages || initialMessages.length === 0) {
487
+ return [];
488
+ }
489
+ const validMessages = initialMessages.filter((im) => typeof im?.content === "string" && im.content.length > 0);
490
+ if (validMessages.length === 0) {
491
+ return [];
492
+ }
493
+ const cacheKey = `${chatId ?? "_"}|${currentThreadId ?? "_"}`;
494
+ const cached = initialAgentMessageIdsRef.current[cacheKey] ?? [];
495
+ const ids = [];
496
+ for (let i = 0; i < validMessages.length; i++) {
497
+ ids.push(cached[i] ?? generateId());
498
+ }
499
+ initialAgentMessageIdsRef.current[cacheKey] = ids;
500
+ return validMessages.map((initialMessage, i) => ({
501
+ id: ids[i],
502
+ createdAt: new Date(1).toISOString(),
503
+ msg: {
504
+ id: ids[i],
505
+ role: "ai",
506
+ type: "text",
507
+ content: initialMessage.content,
508
+ payload: {},
509
+ },
510
+ }));
511
+ }, [
512
+ isPersistentFlow,
513
+ isFetchingMessages,
514
+ fetchedMessages.length,
515
+ effectiveAgentChatData?.initialMessages,
516
+ chatId,
517
+ currentThreadId,
518
+ ]);
449
519
  if (isResolvingAgentChatConfig) {
450
520
  return null;
451
521
  }
@@ -469,13 +539,15 @@ export const AgentChatRoot = ({ appId, token, agentBlockId, agentHarness, useAge
469
539
  currentThreadId,
470
540
  setCurrentThreadId,
471
541
  fetchedMessages,
542
+ initialAgentMessages,
543
+ isPersistentFlow,
472
544
  };
473
545
  if (isNewAgent) {
474
- return _jsx(AiSdkAgentChatProvider, { ...commonProps });
546
+ return _jsx(CopilotAgentChatRootProvider, { ...commonProps });
475
547
  }
476
548
  return _jsx(LegacyAgentChatProvider, { ...commonProps });
477
549
  };
478
- function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory = { isEnabled: true, isPersistent: false }, isFetchingMessages, setCurrentThreadId, fetchedMessages, }) {
550
+ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, memoryEnabled = false, shortTermMemory = { isEnabled: true, isPersistent: true }, isFetchingMessages, setCurrentThreadId, fetchedMessages, initialAgentMessages, isPersistentFlow, }) {
479
551
  const [messages, setMessages] = useState([]);
480
552
  const [isThinking, setIsThinking] = useState(false);
481
553
  const addMessages = useCallback((messagesToAdd) => {
@@ -594,54 +666,49 @@ function LegacyAgentChatProvider({ appId, token, agentChatId, children, chatId,
594
666
  memoryEnabled,
595
667
  shortTermMemory,
596
668
  ]);
597
- useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage });
669
+ useAgentChatDataInitialization({ agentChatData, addMessages, sendMessage, isPersistentFlow });
598
670
  const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
599
- 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 }));
671
+ 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 }));
600
672
  }
601
- function AiSdkAgentChatProvider({ appId, token, agentBlockId, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, shortTermMemory = { isEnabled: true, isPersistent: false }, isFetchingMessages, setCurrentThreadId, fetchedMessages, }) {
673
+ function CopilotAgentChatRootProvider({ appId, token, ...props }) {
674
+ const copilotRuntimeUrl = `${getApiHost()}/agent-chat-stream`;
675
+ const agent = useMemo(() => new BlocksCopilotHttpAgent({ url: copilotRuntimeUrl }), [copilotRuntimeUrl]);
676
+ const agents = useMemo(() => ({ default: agent }), [agent]);
677
+ return (_jsx(CopilotKit, { runtimeUrl: copilotRuntimeUrl, agents__unsafe_dev_only: agents, children: _jsx(CopilotAgentChatProvider, { ...props, appId: appId, token: token, copilotAgent: agent }) }));
678
+ }
679
+ function CopilotAgentChatProvider({ appId, token, agentBlockId, agentChatId, children, chatId, noPersistency, currentThreadId, chatContext, chatContextFiles, agentChatData, shortTermMemory = { isEnabled: true, isPersistent: true }, isFetchingMessages, setCurrentThreadId, fetchedMessages, initialAgentMessages, isPersistentFlow, copilotAgent, }) {
602
680
  const [externalMessages, setExternalMessages] = useState([]);
603
- const aiMessageCreatedAtByIdRef = useRef({});
604
- const previousAiChatIdRef = useRef(undefined);
605
- const aiChatTransport = useMemo(() => new DefaultChatTransport({
606
- api: `${getApiHost()}/agent-chat-stream`,
607
- credentials: "include",
608
- prepareSendMessagesRequest: ({ body, id, messages, trigger, messageId }) => {
609
- const submittedMessage = messages[messages.length - 1];
610
- const requestMessages = Array.isArray(body?.messages) ? body.messages : [];
611
- return {
612
- body: {
613
- ...body,
614
- id,
615
- trigger,
616
- messages: submittedMessage ? [...requestMessages, submittedMessage] : requestMessages,
617
- ...(messageId ? { messageId } : {}),
618
- },
619
- };
620
- },
621
- }), []);
622
- const aiChatId = useMemo(() => [appId, agentChatId, chatId, currentThreadId].filter(Boolean).join(":"), [appId, agentChatId, chatId, currentThreadId]);
623
- const { messages: aiMessages, sendMessage: sendAiSdkMessage, setMessages: setAiMessages, status: aiChatStatus, } = useChat({
624
- id: aiChatId,
625
- transport: aiChatTransport,
626
- onError: (error) => {
627
- setAiMessages((prev) => appendAiSdkErrorMessage(prev, error));
628
- },
629
- });
681
+ const copilotMessageCreatedAtByIdRef = useRef({});
682
+ const previousCopilotChatIdRef = useRef(undefined);
683
+ const copilotChatId = useMemo(() => [appId, agentChatId, chatId, currentThreadId].filter(Boolean).join(":"), [appId, agentChatId, chatId, currentThreadId]);
684
+ const { messages: copilotMessages, sendMessage: sendCopilotMessage, setMessages: setCopilotMessages, isLoading: isCopilotLoading, } = useCopilotChatInternal();
630
685
  useEffect(() => {
631
- if (previousAiChatIdRef.current === aiChatId) {
686
+ if (previousCopilotChatIdRef.current === copilotChatId) {
632
687
  return;
633
688
  }
634
- previousAiChatIdRef.current = aiChatId;
635
- aiMessageCreatedAtByIdRef.current = {};
689
+ previousCopilotChatIdRef.current = copilotChatId;
690
+ copilotMessageCreatedAtByIdRef.current = {};
636
691
  setExternalMessages([]);
637
- setAiMessages([]);
638
- }, [aiChatId, setAiMessages]);
692
+ setCopilotMessages([]);
693
+ }, [copilotChatId, setCopilotMessages]);
694
+ const copilotMessageItems = useMemo(() => copilotMessages
695
+ .map((message) => {
696
+ const legacyPayload = copilotMessageToLegacyPayload(message, copilotMessages);
697
+ if (!legacyPayload) {
698
+ return null;
699
+ }
700
+ copilotMessageCreatedAtByIdRef.current[legacyPayload.id] ??= new Date().toISOString();
701
+ return {
702
+ createdAt: copilotMessageCreatedAtByIdRef.current[legacyPayload.id],
703
+ msg: legacyPayload,
704
+ };
705
+ })
706
+ .filter((message) => Boolean(message)), [copilotMessages]);
639
707
  const messages = useMemo(() => {
640
708
  const fetchedMessageItems = fetchedMessages.map(storedMessageToLegacyView);
641
- const nextMessages = mergeMessageItemsById(fetchedMessageItems, externalMessages);
642
- for (const aiMessage of aiMessages) {
643
- aiMessageCreatedAtByIdRef.current[aiMessage.id] ??= new Date().toISOString();
644
- const messageItem = uiMessageToV1MessageItem(aiMessage, aiMessageCreatedAtByIdRef.current[aiMessage.id]);
709
+ // Seed initial agent messages so the stream echo merges by id and keeps the early createdAt.
710
+ const nextMessages = mergeMessageItemsById(mergeMessageItemsById(initialAgentMessages, fetchedMessageItems), externalMessages);
711
+ for (const messageItem of copilotMessageItems) {
645
712
  const existingIndex = nextMessages.findIndex((message) => message.msg.id === messageItem.msg.id);
646
713
  if (existingIndex !== -1) {
647
714
  nextMessages[existingIndex] = {
@@ -656,26 +723,30 @@ function AiSdkAgentChatProvider({ appId, token, agentBlockId, agentChatId, child
656
723
  }
657
724
  nextMessages.sort((a, b) => Date.parse(a.createdAt) - Date.parse(b.createdAt));
658
725
  return nextMessages;
659
- }, [aiMessages, externalMessages, fetchedMessages]);
660
- const isThinking = aiChatStatus === "submitted" || aiChatStatus === "streaming";
726
+ }, [copilotMessageItems, externalMessages, fetchedMessages, initialAgentMessages]);
727
+ const isThinking = isCopilotLoading;
661
728
  const addExternalMessages = useCallback((messagesToAdd) => {
662
729
  const normalizedMessages = messagesToAdd.map(storedMessageToLegacyView);
663
730
  setExternalMessages((prevMessages) => mergeMessageItemsById(prevMessages, normalizedMessages));
664
731
  }, []);
665
- const addAiSdkErrorMessage = useCallback((error) => {
666
- setAiMessages((prev) => appendAiSdkErrorMessage(prev, error));
667
- }, [setAiMessages]);
732
+ const addCopilotErrorMessage = useCallback((error) => {
733
+ setCopilotMessages(appendCopilotErrorMessage(copilotMessages, error));
734
+ }, [copilotMessages, setCopilotMessages]);
668
735
  const sendMessage = useCallback(async ({ content, hiddenContent, ...message }) => {
669
736
  try {
670
737
  const messageId = generateId();
671
738
  const uploadedAttachments = await uploadAttachments({ attachments: message.attachments, appId, token });
672
- const userUiMessage = {
739
+ const userCopilotMessage = {
673
740
  id: messageId,
674
741
  role: "user",
675
- parts: [{ type: "text", text: content ?? "" }, ...attachmentsToUiFileParts(uploadedAttachments)],
742
+ content: content ?? "",
676
743
  metadata: { version: 1, hiddenPrompt: hiddenContent ?? undefined },
677
744
  };
678
- await sendAiSdkMessage(userUiMessage, {
745
+ const requestMessages = messages
746
+ .map(messageItemToCopilotMessage)
747
+ .filter((requestMessage) => Boolean(requestMessage));
748
+ setCopilotMessages(requestMessages);
749
+ copilotAgent.setRequestOptions({
679
750
  headers: {
680
751
  ...(token ? { Authorization: `Bearer ${token}` } : {}),
681
752
  ...(AppVersionService.getCurrentVersionNumber()
@@ -694,31 +765,46 @@ function AiSdkAgentChatProvider({ appId, token, agentBlockId, agentChatId, child
694
765
  shortTermMemory,
695
766
  chatContextFiles,
696
767
  chatContext: formatChatContext(chatContext),
697
- messages: messages.map(messageItemToUIMessage),
768
+ files: uploadedAttachments,
769
+ messages: [...requestMessages, userCopilotMessage],
770
+ messageId,
771
+ initialMessageIds: initialAgentMessages.map((m) => m.msg.id),
698
772
  },
699
773
  });
774
+ await sendCopilotMessage(userCopilotMessage);
700
775
  }
701
776
  catch (error) {
702
- addAiSdkErrorMessage(error);
777
+ addCopilotErrorMessage(error);
778
+ }
779
+ finally {
780
+ copilotAgent.clearRequestOptions();
703
781
  }
704
782
  }, [
705
- addAiSdkErrorMessage,
783
+ addCopilotErrorMessage,
706
784
  agentBlockId,
707
785
  agentChatId,
708
786
  appId,
709
787
  chatId,
710
788
  chatContext,
711
789
  chatContextFiles,
790
+ copilotAgent,
712
791
  currentThreadId,
713
792
  messages,
714
793
  noPersistency,
715
- sendAiSdkMessage,
794
+ sendCopilotMessage,
795
+ setCopilotMessages,
716
796
  shortTermMemory,
717
797
  token,
798
+ initialAgentMessages,
718
799
  ]);
719
- useAgentChatDataInitialization({ agentChatData, addMessages: addExternalMessages, sendMessage });
800
+ useAgentChatDataInitialization({
801
+ agentChatData,
802
+ addMessages: addExternalMessages,
803
+ sendMessage,
804
+ isPersistentFlow,
805
+ });
720
806
  const inputState = useAgentChatInputState({ isThinking, isFetchingMessages, sendMessage });
721
- return (_jsx(AgentChatContextProvider, { ...inputState, messages: messages, 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 }));
807
+ 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 }));
722
808
  }
723
809
  const AgentChatVoiceContext = createContext(null);
724
810
  const noopVoice = {
@@ -904,7 +990,7 @@ export function AgentChatVoice({ children }) {
904
990
  return;
905
991
  }
906
992
  const conversationHistory = messagesRef.current
907
- .filter((m) => isLegacyMessageItem(m) && Boolean(m.msg.content) && m.msg.type === "text" && !m.msg.payload?.isVoiceMarker)
993
+ .filter((m) => Boolean(m.msg.content) && m.msg.type === "text" && !m.msg.payload?.isVoiceMarker)
908
994
  .slice(-20)
909
995
  .map((m) => ({
910
996
  role: (m.msg.role === "human" ? "user" : "assistant"),
@@ -944,18 +1030,7 @@ export function AgentChatVoice({ children }) {
944
1030
  say: voiceSay,
945
1031
  }, children: children }));
946
1032
  }
947
- const hasRenderableMessageContent = (message) => {
948
- if (isV1AiSdkMessageItem(message)) {
949
- return Boolean(message.msg.parts.length);
950
- }
951
- const hasTextContent = Boolean(message.msg.content);
952
- const hasAttachments = Boolean(message.msg.attachments?.length);
953
- return hasTextContent || hasAttachments;
954
- };
955
1033
  export function AgentChatMessage({ message, index, ...props }) {
956
- if (!hasRenderableMessageContent(message)) {
957
- return null;
958
- }
959
1034
  return _jsx("div", { "data-message-index": index, "data-message-role": message.msg.role, ...props });
960
1035
  }
961
1036
  export function AgentChatMessages({ asChild = false, autoScroll = true, scrollAreaClassName, ...props }) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocksdiy/react-common",
3
- "version": "1.14.1",
3
+ "version": "1.15.0",
4
4
  "type": "module",
5
5
  "description": "React common",
6
6
  "keywords": [],
@@ -30,10 +30,10 @@
30
30
  ]
31
31
  },
32
32
  "dependencies": {
33
- "@ai-sdk/react": "^3.0.177",
33
+ "@ag-ui/client": "^0.0.53",
34
+ "@copilotkit/react-core": "^1.57.1",
34
35
  "@radix-ui/react-slot": "^1.2.3",
35
36
  "@vapi-ai/web": "^2.5.2",
36
- "ai": "^6.0.175",
37
37
  "penpal": "^7.0.6",
38
38
  "react": "^19.2.4",
39
39
  "@blocksdiy/blocks-client-api": "1.5.0"