@copilotkit/react-ui 1.10.0-next.8 → 1.10.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.
- package/CHANGELOG.md +132 -0
- package/dist/{chunk-U5ATIGWH.mjs → chunk-BJHJBS5M.mjs} +45 -5
- package/dist/chunk-BJHJBS5M.mjs.map +1 -0
- package/dist/{chunk-KLV4ERV6.mjs → chunk-GBP47ONN.mjs} +2 -2
- package/dist/{chunk-3DVMCBME.mjs → chunk-GJ4SX4JE.mjs} +97 -35
- package/dist/chunk-GJ4SX4JE.mjs.map +1 -0
- package/dist/{chunk-APLX7E54.mjs → chunk-J5ZZR6YB.mjs} +2 -2
- package/dist/chunk-MIVUCSGO.mjs +126 -0
- package/dist/chunk-MIVUCSGO.mjs.map +1 -0
- package/dist/{chunk-JHUTTP5C.mjs → chunk-T5QU6KSB.mjs} +5 -1
- package/dist/chunk-T5QU6KSB.mjs.map +1 -0
- package/dist/{chunk-BPU3FDT4.mjs → chunk-Y44VLEUH.mjs} +30 -11
- package/dist/chunk-Y44VLEUH.mjs.map +1 -0
- package/dist/components/chat/Chat.d.ts +32 -2
- package/dist/components/chat/Chat.js +1084 -865
- package/dist/components/chat/Chat.js.map +1 -1
- package/dist/components/chat/Chat.mjs +7 -6
- package/dist/components/chat/Messages.d.ts +1 -1
- package/dist/components/chat/Messages.js +984 -23
- package/dist/components/chat/Messages.js.map +1 -1
- package/dist/components/chat/Messages.mjs +9 -1
- package/dist/components/chat/Modal.js +1107 -875
- package/dist/components/chat/Modal.js.map +1 -1
- package/dist/components/chat/Modal.mjs +8 -7
- package/dist/components/chat/Popup.js +1109 -877
- package/dist/components/chat/Popup.js.map +1 -1
- package/dist/components/chat/Popup.mjs +9 -8
- package/dist/components/chat/Sidebar.js +1109 -877
- package/dist/components/chat/Sidebar.js.map +1 -1
- package/dist/components/chat/Sidebar.mjs +9 -8
- package/dist/components/chat/index.js +1111 -879
- package/dist/components/chat/index.js.map +1 -1
- package/dist/components/chat/index.mjs +16 -15
- package/dist/components/chat/messages/LegacyRenderMessage.d.ts +28 -0
- package/dist/components/chat/messages/LegacyRenderMessage.js +980 -0
- package/dist/components/chat/messages/LegacyRenderMessage.js.map +1 -0
- package/dist/components/chat/messages/LegacyRenderMessage.mjs +17 -0
- package/dist/components/chat/messages/LegacyRenderMessage.mjs.map +1 -0
- package/dist/components/chat/messages/RenderMessage.js +4 -0
- package/dist/components/chat/messages/RenderMessage.js.map +1 -1
- package/dist/components/chat/messages/RenderMessage.mjs +1 -1
- package/dist/components/chat/props.d.ts +55 -1
- package/dist/components/chat/props.js.map +1 -1
- package/dist/components/index.js +1111 -879
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +16 -15
- package/dist/index.js +1113 -881
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -15
- package/package.json +4 -4
- package/src/components/chat/Chat.tsx +144 -21
- package/src/components/chat/Messages.tsx +56 -3
- package/src/components/chat/Modal.tsx +24 -3
- package/src/components/chat/messages/LegacyRenderMessage.tsx +143 -0
- package/src/components/chat/messages/RenderMessage.tsx +3 -0
- package/src/components/chat/props.ts +64 -1
- package/dist/chunk-3DVMCBME.mjs.map +0 -1
- package/dist/chunk-BPU3FDT4.mjs.map +0 -1
- package/dist/chunk-JHUTTP5C.mjs.map +0 -1
- package/dist/chunk-U5ATIGWH.mjs.map +0 -1
- /package/dist/{chunk-KLV4ERV6.mjs.map → chunk-GBP47ONN.mjs.map} +0 -0
- /package/dist/{chunk-APLX7E54.mjs.map → chunk-J5ZZR6YB.mjs.map} +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RenderMessage
|
|
3
|
+
} from "./chunk-T5QU6KSB.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/chat/messages/LegacyRenderMessage.tsx
|
|
6
|
+
import { aguiToGQL } from "@copilotkit/runtime-client-gql";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var LegacyRenderMessage = ({
|
|
9
|
+
message,
|
|
10
|
+
inProgress,
|
|
11
|
+
index,
|
|
12
|
+
isCurrentMessage,
|
|
13
|
+
actionResult,
|
|
14
|
+
AssistantMessage,
|
|
15
|
+
UserMessage,
|
|
16
|
+
ImageRenderer,
|
|
17
|
+
onRegenerate,
|
|
18
|
+
onCopy,
|
|
19
|
+
onThumbsUp,
|
|
20
|
+
onThumbsDown,
|
|
21
|
+
markdownTagRenderers,
|
|
22
|
+
legacyProps
|
|
23
|
+
}) => {
|
|
24
|
+
var _a;
|
|
25
|
+
const {
|
|
26
|
+
RenderTextMessage,
|
|
27
|
+
RenderActionExecutionMessage,
|
|
28
|
+
RenderAgentStateMessage,
|
|
29
|
+
RenderResultMessage,
|
|
30
|
+
RenderImageMessage
|
|
31
|
+
} = legacyProps;
|
|
32
|
+
const deprecatedMessage = (_a = aguiToGQL(message)[0]) != null ? _a : void 0;
|
|
33
|
+
if (deprecatedMessage.isTextMessage() && RenderTextMessage) {
|
|
34
|
+
return /* @__PURE__ */ jsx(
|
|
35
|
+
RenderTextMessage,
|
|
36
|
+
{
|
|
37
|
+
message,
|
|
38
|
+
inProgress,
|
|
39
|
+
index,
|
|
40
|
+
isCurrentMessage,
|
|
41
|
+
AssistantMessage,
|
|
42
|
+
UserMessage,
|
|
43
|
+
onRegenerate,
|
|
44
|
+
onCopy,
|
|
45
|
+
onThumbsUp,
|
|
46
|
+
onThumbsDown,
|
|
47
|
+
markdownTagRenderers
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
if (deprecatedMessage.isActionExecutionMessage() && RenderActionExecutionMessage) {
|
|
52
|
+
return /* @__PURE__ */ jsx(
|
|
53
|
+
RenderActionExecutionMessage,
|
|
54
|
+
{
|
|
55
|
+
message,
|
|
56
|
+
inProgress,
|
|
57
|
+
index,
|
|
58
|
+
isCurrentMessage,
|
|
59
|
+
actionResult,
|
|
60
|
+
AssistantMessage,
|
|
61
|
+
UserMessage
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
if (deprecatedMessage.isAgentStateMessage() && RenderAgentStateMessage) {
|
|
66
|
+
return /* @__PURE__ */ jsx(
|
|
67
|
+
RenderAgentStateMessage,
|
|
68
|
+
{
|
|
69
|
+
message,
|
|
70
|
+
inProgress,
|
|
71
|
+
index,
|
|
72
|
+
isCurrentMessage,
|
|
73
|
+
AssistantMessage,
|
|
74
|
+
UserMessage
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
if (deprecatedMessage.isResultMessage() && RenderResultMessage) {
|
|
79
|
+
return /* @__PURE__ */ jsx(
|
|
80
|
+
RenderResultMessage,
|
|
81
|
+
{
|
|
82
|
+
message,
|
|
83
|
+
inProgress,
|
|
84
|
+
index,
|
|
85
|
+
isCurrentMessage,
|
|
86
|
+
AssistantMessage,
|
|
87
|
+
UserMessage
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
if (deprecatedMessage.isImageMessage() && RenderImageMessage) {
|
|
92
|
+
return /* @__PURE__ */ jsx(
|
|
93
|
+
RenderImageMessage,
|
|
94
|
+
{
|
|
95
|
+
message,
|
|
96
|
+
inProgress,
|
|
97
|
+
index,
|
|
98
|
+
isCurrentMessage,
|
|
99
|
+
AssistantMessage,
|
|
100
|
+
UserMessage
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
return /* @__PURE__ */ jsx(
|
|
105
|
+
RenderMessage,
|
|
106
|
+
{
|
|
107
|
+
message,
|
|
108
|
+
inProgress,
|
|
109
|
+
index,
|
|
110
|
+
isCurrentMessage,
|
|
111
|
+
AssistantMessage,
|
|
112
|
+
UserMessage,
|
|
113
|
+
ImageRenderer,
|
|
114
|
+
onRegenerate,
|
|
115
|
+
onCopy,
|
|
116
|
+
onThumbsUp,
|
|
117
|
+
onThumbsDown,
|
|
118
|
+
markdownTagRenderers
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export {
|
|
124
|
+
LegacyRenderMessage
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=chunk-MIVUCSGO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/chat/messages/LegacyRenderMessage.tsx"],"sourcesContent":["import React from \"react\";\nimport { RenderMessageProps } from \"../props\";\nimport { RenderMessage as DefaultRenderMessage } from \"./RenderMessage\";\nimport { aguiToGQL } from \"@copilotkit/runtime-client-gql\";\n\n/**\n * Legacy message render props interface for backwards compatibility\n */\nexport interface LegacyRenderProps {\n RenderTextMessage?: React.ComponentType<RenderMessageProps>;\n RenderActionExecutionMessage?: React.ComponentType<RenderMessageProps>;\n RenderAgentStateMessage?: React.ComponentType<RenderMessageProps>;\n RenderResultMessage?: React.ComponentType<RenderMessageProps>;\n RenderImageMessage?: React.ComponentType<RenderMessageProps>;\n}\n\n/**\n * Props for the LegacyRenderMessage component\n */\nexport interface LegacyRenderMessageProps extends RenderMessageProps {\n legacyProps: LegacyRenderProps;\n}\n\n/**\n * Legacy message adapter component that maps old render props to new message types.\n * This component provides backwards compatibility for the deprecated render props.\n */\nexport const LegacyRenderMessage: React.FC<LegacyRenderMessageProps> = ({\n message,\n inProgress,\n index,\n isCurrentMessage,\n actionResult,\n AssistantMessage,\n UserMessage,\n ImageRenderer,\n onRegenerate,\n onCopy,\n onThumbsUp,\n onThumbsDown,\n markdownTagRenderers,\n legacyProps,\n}) => {\n const {\n RenderTextMessage,\n RenderActionExecutionMessage,\n RenderAgentStateMessage,\n RenderResultMessage,\n RenderImageMessage,\n } = legacyProps;\n\n const deprecatedMessage = aguiToGQL(message)[0] ?? undefined;\n\n // Route to appropriate legacy renderer based on message type\n if (deprecatedMessage.isTextMessage() && RenderTextMessage) {\n return (\n <RenderTextMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n onRegenerate={onRegenerate}\n onCopy={onCopy}\n onThumbsUp={onThumbsUp}\n onThumbsDown={onThumbsDown}\n markdownTagRenderers={markdownTagRenderers}\n />\n );\n }\n\n if (deprecatedMessage.isActionExecutionMessage() && RenderActionExecutionMessage) {\n return (\n <RenderActionExecutionMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n actionResult={actionResult}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n />\n );\n }\n\n if (deprecatedMessage.isAgentStateMessage() && RenderAgentStateMessage) {\n return (\n <RenderAgentStateMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n />\n );\n }\n\n if (deprecatedMessage.isResultMessage() && RenderResultMessage) {\n return (\n <RenderResultMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n />\n );\n }\n\n if (deprecatedMessage.isImageMessage() && RenderImageMessage) {\n return (\n <RenderImageMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n />\n );\n }\n\n // Fallback to default RenderMessage for any unhandled cases\n return (\n <DefaultRenderMessage\n message={message}\n inProgress={inProgress}\n index={index}\n isCurrentMessage={isCurrentMessage}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n ImageRenderer={ImageRenderer}\n onRegenerate={onRegenerate}\n onCopy={onCopy}\n onThumbsUp={onThumbsUp}\n onThumbsDown={onThumbsDown}\n markdownTagRenderers={markdownTagRenderers}\n />\n );\n};\n"],"mappings":";;;;;AAGA,SAAS,iBAAiB;AAqDpB;AA7BC,IAAM,sBAA0D,CAAC;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AA1CN;AA2CE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,QAAM,qBAAoB,eAAU,OAAO,EAAE,CAAC,MAApB,YAAyB;AAGnD,MAAI,kBAAkB,cAAc,KAAK,mBAAmB;AAC1D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,kBAAkB,yBAAyB,KAAK,8BAA8B;AAChF,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,kBAAkB,oBAAoB,KAAK,yBAAyB;AACtE,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,kBAAkB,gBAAgB,KAAK,qBAAqB;AAC9D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,kBAAkB,eAAe,KAAK,oBAAoB;AAC5D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF;AAAA,EAEJ;AAGA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -23,6 +23,7 @@ function RenderMessage(_a) {
|
|
|
23
23
|
"AssistantMessage",
|
|
24
24
|
"ImageRenderer"
|
|
25
25
|
]);
|
|
26
|
+
var _a2;
|
|
26
27
|
const {
|
|
27
28
|
message,
|
|
28
29
|
inProgress,
|
|
@@ -39,6 +40,7 @@ function RenderMessage(_a) {
|
|
|
39
40
|
return /* @__PURE__ */ jsx(
|
|
40
41
|
UserMessage2,
|
|
41
42
|
{
|
|
43
|
+
rawData: message,
|
|
42
44
|
"data-message-role": "user",
|
|
43
45
|
message,
|
|
44
46
|
ImageRenderer: ImageRenderer2
|
|
@@ -50,6 +52,8 @@ function RenderMessage(_a) {
|
|
|
50
52
|
AssistantMessage2,
|
|
51
53
|
{
|
|
52
54
|
"data-message-role": "assistant",
|
|
55
|
+
subComponent: (_a2 = message.generativeUI) == null ? void 0 : _a2.call(message),
|
|
56
|
+
rawData: message,
|
|
53
57
|
message,
|
|
54
58
|
isLoading: inProgress && isCurrentMessage && !message.content,
|
|
55
59
|
isGenerating: inProgress && isCurrentMessage && !!message.content,
|
|
@@ -69,4 +73,4 @@ function RenderMessage(_a) {
|
|
|
69
73
|
export {
|
|
70
74
|
RenderMessage
|
|
71
75
|
};
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-T5QU6KSB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/chat/messages/RenderMessage.tsx"],"sourcesContent":["import { RenderMessageProps } from \"../props\";\nimport { UserMessage as DefaultUserMessage } from \"./UserMessage\";\nimport { AssistantMessage as DefaultAssistantMessage } from \"./AssistantMessage\";\nimport { ImageRenderer as DefaultImageRenderer } from \"./ImageRenderer\";\n\nexport function RenderMessage({\n UserMessage = DefaultUserMessage,\n AssistantMessage = DefaultAssistantMessage,\n ImageRenderer = DefaultImageRenderer,\n ...props\n}: RenderMessageProps) {\n const {\n message,\n inProgress,\n index,\n isCurrentMessage,\n onRegenerate,\n onCopy,\n onThumbsUp,\n onThumbsDown,\n markdownTagRenderers,\n } = props;\n\n switch (message.role) {\n case \"user\":\n return (\n <UserMessage\n key={index}\n rawData={message}\n data-message-role=\"user\"\n message={message}\n ImageRenderer={ImageRenderer}\n />\n );\n case \"assistant\":\n return (\n <AssistantMessage\n key={index}\n data-message-role=\"assistant\"\n subComponent={message.generativeUI?.()}\n rawData={message}\n message={message}\n isLoading={inProgress && isCurrentMessage && !message.content}\n isGenerating={inProgress && isCurrentMessage && !!message.content}\n isCurrentMessage={isCurrentMessage}\n onRegenerate={() => onRegenerate?.(message.id)}\n onCopy={onCopy}\n onThumbsUp={onThumbsUp}\n onThumbsDown={onThumbsDown}\n markdownTagRenderers={markdownTagRenderers}\n ImageRenderer={ImageRenderer}\n />\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA0BQ;AArBD,SAAS,cAAc,IAKP;AALO,eAC5B;AAAA,iBAAAA,eAAc;AAAA,IACd,kBAAAC,oBAAmB;AAAA,IACnB,eAAAC,iBAAgB;AAAA,EARlB,IAK8B,IAIzB,kBAJyB,IAIzB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AARF,MAAAC;AAWE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK;AACH,aACE;AAAA,QAACH;AAAA,QAAA;AAAA,UAEC,SAAS;AAAA,UACT,qBAAkB;AAAA,UAClB;AAAA,UACA,eAAeE;AAAA;AAAA,QAJV;AAAA,MAKP;AAAA,IAEJ,KAAK;AACH,aACE;AAAA,QAACD;AAAA,QAAA;AAAA,UAEC,qBAAkB;AAAA,UAClB,eAAcE,MAAA,QAAQ,iBAAR,gBAAAA,IAAA;AAAA,UACd,SAAS;AAAA,UACT;AAAA,UACA,WAAW,cAAc,oBAAoB,CAAC,QAAQ;AAAA,UACtD,cAAc,cAAc,oBAAoB,CAAC,CAAC,QAAQ;AAAA,UAC1D;AAAA,UACA,cAAc,MAAM,6CAAe,QAAQ;AAAA,UAC3C;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,eAAeD;AAAA;AAAA,QAbV;AAAA,MAcP;AAAA,EAEN;AACF;","names":["UserMessage","AssistantMessage","ImageRenderer","_a"]}
|
|
@@ -9,19 +9,19 @@ import {
|
|
|
9
9
|
} from "./chunk-UFN2VWSR.mjs";
|
|
10
10
|
import {
|
|
11
11
|
CopilotChat
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-GJ4SX4JE.mjs";
|
|
13
|
+
import {
|
|
14
|
+
Input
|
|
15
|
+
} from "./chunk-DTRPPNSA.mjs";
|
|
16
|
+
import {
|
|
17
|
+
Messages
|
|
18
|
+
} from "./chunk-BJHJBS5M.mjs";
|
|
13
19
|
import {
|
|
14
20
|
AssistantMessage
|
|
15
21
|
} from "./chunk-GCKKSSBU.mjs";
|
|
16
22
|
import {
|
|
17
23
|
UserMessage
|
|
18
24
|
} from "./chunk-VVL6JFCJ.mjs";
|
|
19
|
-
import {
|
|
20
|
-
Input
|
|
21
|
-
} from "./chunk-DTRPPNSA.mjs";
|
|
22
|
-
import {
|
|
23
|
-
Messages
|
|
24
|
-
} from "./chunk-U5ATIGWH.mjs";
|
|
25
25
|
import {
|
|
26
26
|
ChatContextProvider,
|
|
27
27
|
useChatContext
|
|
@@ -35,6 +35,13 @@ import {
|
|
|
35
35
|
// src/components/chat/Modal.tsx
|
|
36
36
|
import React, { useMemo, useCallback, useEffect, useRef } from "react";
|
|
37
37
|
import { useCopilotContext } from "@copilotkit/react-core";
|
|
38
|
+
import {
|
|
39
|
+
CopilotKitError,
|
|
40
|
+
CopilotKitErrorCode,
|
|
41
|
+
Severity,
|
|
42
|
+
ErrorVisibility,
|
|
43
|
+
styledConsole
|
|
44
|
+
} from "@copilotkit/shared";
|
|
38
45
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
39
46
|
var CopilotModalInner = (_a) => {
|
|
40
47
|
var _b = _a, {
|
|
@@ -60,14 +67,26 @@ var CopilotModalInner = (_a) => {
|
|
|
60
67
|
"Button",
|
|
61
68
|
"Header"
|
|
62
69
|
]);
|
|
63
|
-
const { copilotApiConfig } = useCopilotContext();
|
|
70
|
+
const { copilotApiConfig, setBannerError } = useCopilotContext();
|
|
71
|
+
const { publicApiKey } = copilotApiConfig;
|
|
64
72
|
const triggerObservabilityHook = useCallback(
|
|
65
73
|
(hookName, ...args) => {
|
|
66
|
-
if (
|
|
74
|
+
if (publicApiKey && (observabilityHooks == null ? void 0 : observabilityHooks[hookName])) {
|
|
67
75
|
observabilityHooks[hookName](...args);
|
|
68
76
|
}
|
|
77
|
+
if ((observabilityHooks == null ? void 0 : observabilityHooks[hookName]) && !publicApiKey) {
|
|
78
|
+
setBannerError(
|
|
79
|
+
new CopilotKitError({
|
|
80
|
+
message: "observabilityHooks requires a publicApiKey to function.",
|
|
81
|
+
code: CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,
|
|
82
|
+
severity: Severity.CRITICAL,
|
|
83
|
+
visibility: ErrorVisibility.BANNER
|
|
84
|
+
})
|
|
85
|
+
);
|
|
86
|
+
styledConsole.publicApiKeyRequired("observabilityHooks");
|
|
87
|
+
}
|
|
69
88
|
},
|
|
70
|
-
[
|
|
89
|
+
[publicApiKey, observabilityHooks, setBannerError]
|
|
71
90
|
);
|
|
72
91
|
const { open } = useChatContext();
|
|
73
92
|
const prevOpen = useRef(open);
|
|
@@ -200,4 +219,4 @@ var CopilotModal = (_a) => {
|
|
|
200
219
|
export {
|
|
201
220
|
CopilotModal
|
|
202
221
|
};
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
222
|
+
//# sourceMappingURL=chunk-Y44VLEUH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/chat/Modal.tsx"],"sourcesContent":["import React, { useMemo, useCallback, useEffect, useRef } from \"react\";\nimport { ChatContextProvider, useChatContext } from \"./ChatContext\";\nimport { ButtonProps, HeaderProps, WindowProps, CopilotObservabilityHooks } from \"./props\";\nimport { Window as DefaultWindow } from \"./Window\";\nimport { Button as DefaultButton } from \"./Button\";\nimport { Header as DefaultHeader } from \"./Header\";\nimport { Messages as DefaultMessages } from \"./Messages\";\nimport { Input as DefaultInput } from \"./Input\";\nimport { CopilotChat, CopilotChatProps } from \"./Chat\";\nimport { AssistantMessage as DefaultAssistantMessage } from \"./messages/AssistantMessage\";\nimport { UserMessage as DefaultUserMessage } from \"./messages/UserMessage\";\nimport { useCopilotContext } from \"@copilotkit/react-core\";\nimport {\n CopilotKitError,\n CopilotKitErrorCode,\n Severity,\n ErrorVisibility,\n styledConsole,\n} from \"@copilotkit/shared\";\n\nexport interface CopilotModalProps extends CopilotChatProps {\n /**\n * Whether the chat window should be open by default.\n * @default false\n */\n defaultOpen?: boolean;\n\n /**\n * If the chat window should close when the user clicks outside of it.\n * @default true\n */\n clickOutsideToClose?: boolean;\n\n /**\n * If the chat window should close when the user hits the Escape key.\n * @default true\n */\n hitEscapeToClose?: boolean;\n\n /**\n * The shortcut key to open the chat window.\n * Uses Command-[shortcut] on a Mac and Ctrl-[shortcut] on Windows.\n * @default '/'\n */\n shortcut?: string;\n\n /**\n * A callback that gets called when the chat window opens or closes.\n */\n onSetOpen?: (open: boolean) => void;\n\n /**\n * A custom Window component to use instead of the default.\n */\n Window?: React.ComponentType<WindowProps>;\n\n /**\n * A custom Button component to use instead of the default.\n */\n Button?: React.ComponentType<ButtonProps>;\n\n /**\n * A custom Header component to use instead of the default.\n */\n Header?: React.ComponentType<HeaderProps>;\n}\n\n// Inner component that has access to the Copilot context\nconst CopilotModalInner = ({\n observabilityHooks,\n onSetOpen,\n clickOutsideToClose,\n hitEscapeToClose,\n shortcut,\n className,\n children,\n Window,\n Button,\n Header,\n ...chatProps\n}: Omit<CopilotModalProps, \"icons\" | \"labels\" | \"defaultOpen\"> & {\n Window: React.ComponentType<WindowProps>;\n Button: React.ComponentType<ButtonProps>;\n Header: React.ComponentType<HeaderProps>;\n clickOutsideToClose: boolean;\n hitEscapeToClose: boolean;\n shortcut: string;\n}) => {\n const { copilotApiConfig, setBannerError } = useCopilotContext();\n\n // Destructure stable values to avoid object reference changes\n const { publicApiKey } = copilotApiConfig;\n\n // Helper function to trigger event hooks only if publicApiKey is provided\n const triggerObservabilityHook = useCallback(\n (hookName: keyof CopilotObservabilityHooks, ...args: any[]) => {\n if (publicApiKey && observabilityHooks?.[hookName]) {\n (observabilityHooks[hookName] as any)(...args);\n }\n if (observabilityHooks?.[hookName] && !publicApiKey) {\n setBannerError(\n new CopilotKitError({\n message: \"observabilityHooks requires a publicApiKey to function.\",\n code: CopilotKitErrorCode.MISSING_PUBLIC_API_KEY_ERROR,\n severity: Severity.CRITICAL,\n visibility: ErrorVisibility.BANNER,\n }),\n );\n styledConsole.publicApiKeyRequired(\"observabilityHooks\");\n }\n },\n [publicApiKey, observabilityHooks, setBannerError],\n );\n\n const { open } = useChatContext();\n const prevOpen = useRef(open);\n\n // Monitor open state changes and trigger event hooks\n useEffect(() => {\n if (prevOpen.current !== open) {\n onSetOpen?.(open);\n\n // Trigger chat minimize/expand events\n if (open) {\n triggerObservabilityHook(\"onChatExpanded\");\n } else {\n triggerObservabilityHook(\"onChatMinimized\");\n }\n prevOpen.current = open;\n }\n }, [open, onSetOpen, triggerObservabilityHook]);\n\n const memoizedHeader = useMemo(() => <Header />, [Header]);\n const memoizedChildren = useMemo(() => children, [children]);\n\n return (\n <>\n {memoizedChildren}\n <div className={className}>\n <Button></Button>\n <Window\n clickOutsideToClose={clickOutsideToClose}\n shortcut={shortcut}\n hitEscapeToClose={hitEscapeToClose}\n >\n {memoizedHeader}\n <CopilotChat {...chatProps} observabilityHooks={observabilityHooks} />\n </Window>\n </div>\n </>\n );\n};\n\nexport const CopilotModal = ({\n instructions,\n defaultOpen = false,\n clickOutsideToClose = true,\n hitEscapeToClose = true,\n onSetOpen,\n onSubmitMessage,\n onStopGeneration,\n onReloadMessages,\n shortcut = \"/\",\n icons,\n labels,\n makeSystemMessage,\n onInProgress,\n Window = DefaultWindow,\n Button = DefaultButton,\n Header = DefaultHeader,\n Messages = DefaultMessages,\n Input = DefaultInput,\n AssistantMessage = DefaultAssistantMessage,\n UserMessage = DefaultUserMessage,\n onThumbsUp,\n onThumbsDown,\n onCopy,\n onRegenerate,\n markdownTagRenderers,\n className,\n children,\n observabilityHooks,\n ...props\n}: CopilotModalProps) => {\n const [openState, setOpenState] = React.useState(defaultOpen);\n\n return (\n <ChatContextProvider icons={icons} labels={labels} open={openState} setOpen={setOpenState}>\n <CopilotModalInner\n observabilityHooks={observabilityHooks}\n onSetOpen={onSetOpen}\n clickOutsideToClose={clickOutsideToClose ?? true}\n hitEscapeToClose={hitEscapeToClose ?? true}\n shortcut={shortcut ?? \"/\"}\n className={className}\n Window={Window}\n Button={Button}\n Header={Header}\n instructions={instructions}\n onSubmitMessage={onSubmitMessage}\n onStopGeneration={onStopGeneration}\n onReloadMessages={onReloadMessages}\n makeSystemMessage={makeSystemMessage}\n onInProgress={onInProgress}\n Messages={Messages}\n Input={Input}\n AssistantMessage={AssistantMessage}\n UserMessage={UserMessage}\n onThumbsUp={onThumbsUp}\n onThumbsDown={onThumbsDown}\n onCopy={onCopy}\n onRegenerate={onRegenerate}\n markdownTagRenderers={markdownTagRenderers}\n {...props}\n >\n {children}\n </CopilotModalInner>\n </ChatContextProvider>\n );\n};\n"],"mappings":"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","names":["Window","Button","Header","Messages","Input","AssistantMessage","UserMessage"]}
|
|
@@ -125,6 +125,26 @@ interface CopilotChatProps {
|
|
|
125
125
|
* A custom Messages component to use instead of the default.
|
|
126
126
|
*/
|
|
127
127
|
Messages?: React__default.ComponentType<MessagesProps>;
|
|
128
|
+
/**
|
|
129
|
+
* @deprecated - use RenderMessage instead
|
|
130
|
+
*/
|
|
131
|
+
RenderTextMessage?: React__default.ComponentType<RenderMessageProps>;
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated - use RenderMessage instead
|
|
134
|
+
*/
|
|
135
|
+
RenderActionExecutionMessage?: React__default.ComponentType<RenderMessageProps>;
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated - use RenderMessage instead
|
|
138
|
+
*/
|
|
139
|
+
RenderAgentStateMessage?: React__default.ComponentType<RenderMessageProps>;
|
|
140
|
+
/**
|
|
141
|
+
* @deprecated - use RenderMessage instead
|
|
142
|
+
*/
|
|
143
|
+
RenderResultMessage?: React__default.ComponentType<RenderMessageProps>;
|
|
144
|
+
/**
|
|
145
|
+
* @deprecated - use RenderMessage instead
|
|
146
|
+
*/
|
|
147
|
+
RenderImageMessage?: React__default.ComponentType<RenderMessageProps>;
|
|
128
148
|
/**
|
|
129
149
|
* A custom RenderMessage component to use instead of the default.
|
|
130
150
|
*
|
|
@@ -160,6 +180,17 @@ interface CopilotChatProps {
|
|
|
160
180
|
* These hooks only work when publicApiKey is provided.
|
|
161
181
|
*/
|
|
162
182
|
observabilityHooks?: CopilotObservabilityHooks;
|
|
183
|
+
/**
|
|
184
|
+
* Custom error renderer for chat-specific errors.
|
|
185
|
+
* When provided, errors will be displayed inline within the chat interface.
|
|
186
|
+
*/
|
|
187
|
+
renderError?: (error: {
|
|
188
|
+
message: string;
|
|
189
|
+
operation?: string;
|
|
190
|
+
timestamp: number;
|
|
191
|
+
onDismiss: () => void;
|
|
192
|
+
onRetry?: () => void;
|
|
193
|
+
}) => React__default.ReactNode;
|
|
163
194
|
}
|
|
164
195
|
interface OnStopGenerationArguments {
|
|
165
196
|
/**
|
|
@@ -207,7 +238,7 @@ type ImageUpload = {
|
|
|
207
238
|
contentType: string;
|
|
208
239
|
bytes: string;
|
|
209
240
|
};
|
|
210
|
-
declare function CopilotChat({ instructions, suggestions, onSubmitMessage, makeSystemMessage, onInProgress, onStopGeneration, onReloadMessages, onRegenerate, onCopy, onThumbsUp, onThumbsDown, markdownTagRenderers, Messages, RenderMessage, RenderSuggestionsList, Input, className, icons, labels, AssistantMessage, UserMessage, ImageRenderer, imageUploadsEnabled, inputFileAccept, hideStopButton, observabilityHooks, }: CopilotChatProps): react_jsx_runtime.JSX.Element;
|
|
241
|
+
declare function CopilotChat({ instructions, suggestions, onSubmitMessage, makeSystemMessage, onInProgress, onStopGeneration, onReloadMessages, onRegenerate, onCopy, onThumbsUp, onThumbsDown, markdownTagRenderers, Messages, RenderMessage, RenderSuggestionsList, Input, className, icons, labels, AssistantMessage, UserMessage, ImageRenderer, imageUploadsEnabled, inputFileAccept, hideStopButton, observabilityHooks, renderError, RenderTextMessage, RenderActionExecutionMessage, RenderAgentStateMessage, RenderResultMessage, RenderImageMessage, }: CopilotChatProps): react_jsx_runtime.JSX.Element;
|
|
211
242
|
declare function WrappedCopilotChat({ children, icons, labels, className, }: {
|
|
212
243
|
children: React__default.ReactNode;
|
|
213
244
|
icons?: CopilotChatIcons;
|
|
@@ -216,7 +247,6 @@ declare function WrappedCopilotChat({ children, icons, labels, className, }: {
|
|
|
216
247
|
}): react_jsx_runtime.JSX.Element;
|
|
217
248
|
declare const useCopilotChatLogic: (chatSuggestions: ChatSuggestions, makeSystemMessage?: SystemMessageFunction, onInProgress?: (isLoading: boolean) => void, onSubmitMessage?: (messageContent: string) => Promise<void> | void, onStopGeneration?: OnStopGeneration, onReloadMessages?: OnReloadMessages) => {
|
|
218
249
|
messages: Message[];
|
|
219
|
-
visibleMessages: Message[];
|
|
220
250
|
isLoading: boolean;
|
|
221
251
|
suggestions: SuggestionItem[];
|
|
222
252
|
sendMessage: (messageContent: string, imagesToUse?: Array<{
|