@copilotkit/react-core 1.9.2-next.8 → 1.9.2-next.9
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 +9 -0
- package/dist/{chunk-CCESTGAM.mjs → chunk-3OQM3NEK.mjs} +2 -2
- package/dist/{chunk-T4ZKC4X4.mjs → chunk-3YHYWAHK.mjs} +2 -2
- package/dist/{chunk-ISYBUDL4.mjs → chunk-55QZ2SVJ.mjs} +4 -5
- package/dist/chunk-55QZ2SVJ.mjs.map +1 -0
- package/dist/chunk-57K2ZJ5F.mjs +348 -0
- package/dist/chunk-57K2ZJ5F.mjs.map +1 -0
- package/dist/{chunk-ZHEEHGLS.mjs → chunk-ADIITPD2.mjs} +8 -5
- package/dist/{chunk-ZHEEHGLS.mjs.map → chunk-ADIITPD2.mjs.map} +1 -1
- package/dist/{chunk-S4BOATBG.mjs → chunk-EF5BNM34.mjs} +2 -2
- package/dist/{chunk-I4JPQECN.mjs → chunk-EXU7GWLC.mjs} +4 -4
- package/dist/{chunk-7G6RR4HE.mjs → chunk-FXK6RQIN.mjs} +2 -2
- package/dist/{chunk-JXF732XG.mjs → chunk-G7LYGERN.mjs} +80 -13
- package/dist/chunk-G7LYGERN.mjs.map +1 -0
- package/dist/{chunk-VJCHRQ7Q.mjs → chunk-JDEWNLNP.mjs} +37 -4
- package/dist/chunk-JDEWNLNP.mjs.map +1 -0
- package/dist/{chunk-JHIZ5HAI.mjs → chunk-NQVCZQ5T.mjs} +3 -3
- package/dist/{chunk-VF6UPRKM.mjs → chunk-OF4SZTLL.mjs} +3 -3
- package/dist/{chunk-QQZLIEXK.mjs → chunk-SJJNFYGQ.mjs} +3 -3
- package/dist/{chunk-RN3ZRHI7.mjs → chunk-WOGURSAL.mjs} +5 -5
- package/dist/chunk-YAF2LATQ.mjs +310 -0
- package/dist/chunk-YAF2LATQ.mjs.map +1 -0
- package/dist/components/copilot-provider/copilot-messages.js +35 -2
- package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
- package/dist/components/copilot-provider/copilot-messages.mjs +2 -2
- package/dist/components/copilot-provider/copilotkit.js +289 -234
- package/dist/components/copilot-provider/copilotkit.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.mjs +7 -7
- package/dist/components/copilot-provider/index.js +289 -234
- package/dist/components/copilot-provider/index.js.map +1 -1
- package/dist/components/copilot-provider/index.mjs +7 -7
- package/dist/components/error-boundary/error-boundary.js +135 -146
- package/dist/components/error-boundary/error-boundary.js.map +1 -1
- package/dist/components/error-boundary/error-boundary.mjs +4 -4
- package/dist/components/error-boundary/error-utils.js.map +1 -1
- package/dist/components/error-boundary/error-utils.mjs +2 -2
- package/dist/components/index.js +289 -234
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +7 -7
- package/dist/components/toast/toast-provider.js +118 -85
- package/dist/components/toast/toast-provider.js.map +1 -1
- package/dist/components/toast/toast-provider.mjs +1 -1
- package/dist/components/usage-banner.js +135 -146
- package/dist/components/usage-banner.js.map +1 -1
- package/dist/components/usage-banner.mjs +1 -1
- package/dist/hooks/index.js +75 -10
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +14 -14
- package/dist/hooks/use-chat.js +72 -10
- package/dist/hooks/use-chat.js.map +1 -1
- package/dist/hooks/use-chat.mjs +4 -4
- package/dist/hooks/use-coagent-state-render.js.map +1 -1
- package/dist/hooks/use-coagent-state-render.mjs +2 -2
- package/dist/hooks/use-coagent.js +75 -10
- package/dist/hooks/use-coagent.js.map +1 -1
- package/dist/hooks/use-coagent.mjs +10 -10
- package/dist/hooks/use-copilot-action.js.map +1 -1
- package/dist/hooks/use-copilot-action.mjs +3 -3
- package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
- package/dist/hooks/use-copilot-authenticated-action.mjs +4 -4
- package/dist/hooks/use-copilot-chat.js +72 -10
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +9 -9
- package/dist/hooks/use-copilot-runtime-client.js +1 -1
- package/dist/hooks/use-copilot-runtime-client.js.map +1 -1
- package/dist/hooks/use-copilot-runtime-client.mjs +2 -2
- package/dist/hooks/use-langgraph-interrupt.js +72 -10
- package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt.mjs +10 -10
- package/dist/index.js +363 -243
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -15
- package/dist/lib/copilot-task.mjs +8 -8
- package/dist/lib/index.mjs +8 -8
- package/dist/utils/extract.mjs +7 -7
- package/dist/utils/index.mjs +7 -7
- package/package.json +3 -3
- package/src/components/copilot-provider/copilot-messages.tsx +42 -3
- package/src/components/toast/toast-provider.tsx +49 -24
- package/src/components/usage-banner.tsx +144 -147
- package/src/hooks/use-chat.ts +106 -6
- package/src/hooks/use-coagent.ts +5 -0
- package/src/hooks/use-copilot-runtime-client.ts +2 -39
- package/dist/chunk-HD2GE3DK.mjs +0 -359
- package/dist/chunk-HD2GE3DK.mjs.map +0 -1
- package/dist/chunk-ISYBUDL4.mjs.map +0 -1
- package/dist/chunk-JXF732XG.mjs.map +0 -1
- package/dist/chunk-VJCHRQ7Q.mjs.map +0 -1
- package/dist/chunk-VRXANACV.mjs +0 -277
- package/dist/chunk-VRXANACV.mjs.map +0 -1
- /package/dist/{chunk-CCESTGAM.mjs.map → chunk-3OQM3NEK.mjs.map} +0 -0
- /package/dist/{chunk-T4ZKC4X4.mjs.map → chunk-3YHYWAHK.mjs.map} +0 -0
- /package/dist/{chunk-S4BOATBG.mjs.map → chunk-EF5BNM34.mjs.map} +0 -0
- /package/dist/{chunk-I4JPQECN.mjs.map → chunk-EXU7GWLC.mjs.map} +0 -0
- /package/dist/{chunk-7G6RR4HE.mjs.map → chunk-FXK6RQIN.mjs.map} +0 -0
- /package/dist/{chunk-JHIZ5HAI.mjs.map → chunk-NQVCZQ5T.mjs.map} +0 -0
- /package/dist/{chunk-VF6UPRKM.mjs.map → chunk-OF4SZTLL.mjs.map} +0 -0
- /package/dist/{chunk-QQZLIEXK.mjs.map → chunk-SJJNFYGQ.mjs.map} +0 -0
- /package/dist/{chunk-RN3ZRHI7.mjs.map → chunk-WOGURSAL.mjs.map} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -4,38 +4,38 @@ import "./chunk-6YOKPWQ7.mjs";
|
|
|
4
4
|
import "./chunk-LUGEI4YQ.mjs";
|
|
5
5
|
import {
|
|
6
6
|
CopilotTask
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-FXK6RQIN.mjs";
|
|
8
8
|
import "./chunk-CQPYJIBH.mjs";
|
|
9
9
|
import {
|
|
10
10
|
useLangGraphInterruptRender
|
|
11
11
|
} from "./chunk-CMQV4XNY.mjs";
|
|
12
12
|
import {
|
|
13
13
|
useLangGraphInterrupt
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-OF4SZTLL.mjs";
|
|
15
15
|
import {
|
|
16
16
|
useMakeCopilotDocumentReadable
|
|
17
17
|
} from "./chunk-ERXWDCY6.mjs";
|
|
18
18
|
import {
|
|
19
19
|
useCoAgentStateRender
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-3YHYWAHK.mjs";
|
|
21
21
|
import {
|
|
22
22
|
runAgent,
|
|
23
23
|
startAgent,
|
|
24
24
|
stopAgent,
|
|
25
25
|
useCoAgent
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-ADIITPD2.mjs";
|
|
27
27
|
import {
|
|
28
28
|
useCopilotAdditionalInstructions
|
|
29
29
|
} from "./chunk-JPMIAGI6.mjs";
|
|
30
30
|
import {
|
|
31
31
|
useCopilotAuthenticatedAction_c
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-EF5BNM34.mjs";
|
|
33
33
|
import {
|
|
34
34
|
useCopilotAction
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-NQVCZQ5T.mjs";
|
|
36
36
|
import {
|
|
37
37
|
useCopilotChat
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-EXU7GWLC.mjs";
|
|
39
39
|
import {
|
|
40
40
|
useCopilotReadable
|
|
41
41
|
} from "./chunk-UBNRUXEK.mjs";
|
|
@@ -43,29 +43,29 @@ import {
|
|
|
43
43
|
CopilotKit,
|
|
44
44
|
defaultCopilotContextCategories,
|
|
45
45
|
extract
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
46
|
+
} from "./chunk-WOGURSAL.mjs";
|
|
47
|
+
import "./chunk-SJJNFYGQ.mjs";
|
|
48
|
+
import "./chunk-JDEWNLNP.mjs";
|
|
49
49
|
import "./chunk-5FHSUKQL.mjs";
|
|
50
50
|
import "./chunk-RKTVJRK7.mjs";
|
|
51
51
|
import "./chunk-PMAFHQ7P.mjs";
|
|
52
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-57K2ZJ5F.mjs";
|
|
53
53
|
import "./chunk-YPSGKPDA.mjs";
|
|
54
54
|
import {
|
|
55
55
|
CopilotMessagesContext,
|
|
56
56
|
useCopilotMessagesContext
|
|
57
57
|
} from "./chunk-DCTJZ742.mjs";
|
|
58
|
-
import "./chunk-
|
|
58
|
+
import "./chunk-G7LYGERN.mjs";
|
|
59
59
|
import "./chunk-4CEQJ2X6.mjs";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-3OQM3NEK.mjs";
|
|
61
61
|
import "./chunk-O7ARI5CV.mjs";
|
|
62
62
|
import {
|
|
63
63
|
useCopilotRuntimeClient
|
|
64
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-55QZ2SVJ.mjs";
|
|
65
65
|
import {
|
|
66
66
|
shouldShowDevConsole
|
|
67
67
|
} from "./chunk-GFJW4RIM.mjs";
|
|
68
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-YAF2LATQ.mjs";
|
|
69
69
|
import {
|
|
70
70
|
CopilotContext,
|
|
71
71
|
useCopilotContext
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CopilotTask
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-FXK6RQIN.mjs";
|
|
4
|
+
import "../chunk-WOGURSAL.mjs";
|
|
5
|
+
import "../chunk-SJJNFYGQ.mjs";
|
|
6
|
+
import "../chunk-JDEWNLNP.mjs";
|
|
7
7
|
import "../chunk-5FHSUKQL.mjs";
|
|
8
8
|
import "../chunk-RKTVJRK7.mjs";
|
|
9
9
|
import "../chunk-PMAFHQ7P.mjs";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-57K2ZJ5F.mjs";
|
|
11
11
|
import "../chunk-DCTJZ742.mjs";
|
|
12
12
|
import "../chunk-4CEQJ2X6.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-3OQM3NEK.mjs";
|
|
14
14
|
import "../chunk-O7ARI5CV.mjs";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-55QZ2SVJ.mjs";
|
|
16
16
|
import "../chunk-GFJW4RIM.mjs";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-YAF2LATQ.mjs";
|
|
18
18
|
import "../chunk-XFOTNHYA.mjs";
|
|
19
19
|
import "../chunk-SKC7AJIV.mjs";
|
|
20
20
|
export {
|
package/dist/lib/index.mjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import "../chunk-LUGEI4YQ.mjs";
|
|
2
2
|
import {
|
|
3
3
|
CopilotTask
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-FXK6RQIN.mjs";
|
|
5
|
+
import "../chunk-WOGURSAL.mjs";
|
|
6
|
+
import "../chunk-SJJNFYGQ.mjs";
|
|
7
|
+
import "../chunk-JDEWNLNP.mjs";
|
|
8
8
|
import "../chunk-5FHSUKQL.mjs";
|
|
9
9
|
import "../chunk-RKTVJRK7.mjs";
|
|
10
10
|
import "../chunk-PMAFHQ7P.mjs";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-57K2ZJ5F.mjs";
|
|
12
12
|
import "../chunk-DCTJZ742.mjs";
|
|
13
13
|
import "../chunk-4CEQJ2X6.mjs";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-3OQM3NEK.mjs";
|
|
15
15
|
import "../chunk-O7ARI5CV.mjs";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-55QZ2SVJ.mjs";
|
|
17
17
|
import "../chunk-GFJW4RIM.mjs";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-YAF2LATQ.mjs";
|
|
19
19
|
import "../chunk-XFOTNHYA.mjs";
|
|
20
20
|
import "../chunk-SKC7AJIV.mjs";
|
|
21
21
|
export {
|
package/dist/utils/extract.mjs
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extract
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-WOGURSAL.mjs";
|
|
4
|
+
import "../chunk-SJJNFYGQ.mjs";
|
|
5
|
+
import "../chunk-JDEWNLNP.mjs";
|
|
6
6
|
import "../chunk-5FHSUKQL.mjs";
|
|
7
7
|
import "../chunk-RKTVJRK7.mjs";
|
|
8
8
|
import "../chunk-PMAFHQ7P.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-57K2ZJ5F.mjs";
|
|
10
10
|
import "../chunk-DCTJZ742.mjs";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-3OQM3NEK.mjs";
|
|
12
12
|
import "../chunk-O7ARI5CV.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-55QZ2SVJ.mjs";
|
|
14
14
|
import "../chunk-GFJW4RIM.mjs";
|
|
15
|
-
import "../chunk-
|
|
15
|
+
import "../chunk-YAF2LATQ.mjs";
|
|
16
16
|
import "../chunk-XFOTNHYA.mjs";
|
|
17
17
|
import "../chunk-SKC7AJIV.mjs";
|
|
18
18
|
export {
|
package/dist/utils/index.mjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
2
|
extract
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-WOGURSAL.mjs";
|
|
4
|
+
import "../chunk-SJJNFYGQ.mjs";
|
|
5
|
+
import "../chunk-JDEWNLNP.mjs";
|
|
6
6
|
import "../chunk-5FHSUKQL.mjs";
|
|
7
7
|
import "../chunk-RKTVJRK7.mjs";
|
|
8
8
|
import "../chunk-PMAFHQ7P.mjs";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-57K2ZJ5F.mjs";
|
|
10
10
|
import "../chunk-DCTJZ742.mjs";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-3OQM3NEK.mjs";
|
|
12
12
|
import "../chunk-O7ARI5CV.mjs";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-55QZ2SVJ.mjs";
|
|
14
14
|
import {
|
|
15
15
|
shouldShowDevConsole
|
|
16
16
|
} from "../chunk-GFJW4RIM.mjs";
|
|
17
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-YAF2LATQ.mjs";
|
|
18
18
|
import "../chunk-XFOTNHYA.mjs";
|
|
19
19
|
import "../chunk-SKC7AJIV.mjs";
|
|
20
20
|
export {
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"publishConfig": {
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
|
-
"version": "1.9.2-next.
|
|
12
|
+
"version": "1.9.2-next.9",
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"main": "./dist/index.js",
|
|
15
15
|
"module": "./dist/index.mjs",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"@scarf/scarf": "^1.3.0",
|
|
45
45
|
"react-markdown": "^8.0.7",
|
|
46
46
|
"untruncate-json": "^0.0.1",
|
|
47
|
-
"@copilotkit/runtime-client-gql": "1.9.2-next.
|
|
48
|
-
"@copilotkit/shared": "1.9.2-next.
|
|
47
|
+
"@copilotkit/runtime-client-gql": "1.9.2-next.9",
|
|
48
|
+
"@copilotkit/shared": "1.9.2-next.9"
|
|
49
49
|
},
|
|
50
50
|
"keywords": [
|
|
51
51
|
"copilotkit",
|
|
@@ -75,9 +75,43 @@ export function CopilotMessages({ children }: { children: ReactNode }) {
|
|
|
75
75
|
const lastLoadedAgentName = useRef<string>();
|
|
76
76
|
const lastLoadedMessages = useRef<string>();
|
|
77
77
|
|
|
78
|
-
const { threadId, agentSession, runtimeClient, showDevConsole } =
|
|
78
|
+
const { threadId, agentSession, runtimeClient, showDevConsole, onTrace, copilotApiConfig } =
|
|
79
|
+
useCopilotContext();
|
|
79
80
|
const { setBannerError } = useToast();
|
|
80
81
|
|
|
82
|
+
// Helper function to trace UI errors (similar to useCopilotRuntimeClient)
|
|
83
|
+
const traceUIError = useCallback(
|
|
84
|
+
async (error: CopilotKitError, originalError?: any) => {
|
|
85
|
+
// Just check if onTrace and publicApiKey are defined
|
|
86
|
+
if (!onTrace || !copilotApiConfig.publicApiKey) return;
|
|
87
|
+
|
|
88
|
+
try {
|
|
89
|
+
const traceEvent = {
|
|
90
|
+
type: "error" as const,
|
|
91
|
+
timestamp: Date.now(),
|
|
92
|
+
context: {
|
|
93
|
+
source: "ui" as const,
|
|
94
|
+
request: {
|
|
95
|
+
operation: "loadAgentState",
|
|
96
|
+
url: copilotApiConfig.chatApiEndpoint,
|
|
97
|
+
startTime: Date.now(),
|
|
98
|
+
},
|
|
99
|
+
technical: {
|
|
100
|
+
environment: "browser",
|
|
101
|
+
userAgent: typeof navigator !== "undefined" ? navigator.userAgent : undefined,
|
|
102
|
+
stackTrace: originalError instanceof Error ? originalError.stack : undefined,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
error,
|
|
106
|
+
};
|
|
107
|
+
await onTrace(traceEvent);
|
|
108
|
+
} catch (traceError) {
|
|
109
|
+
console.error("Error in CopilotMessages onTrace handler:", traceError);
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
[onTrace, copilotApiConfig.publicApiKey, copilotApiConfig.chatApiEndpoint],
|
|
113
|
+
);
|
|
114
|
+
|
|
81
115
|
const createStructuredError = (gqlError: GraphQLError): CopilotKitError | null => {
|
|
82
116
|
const extensions = gqlError.extensions;
|
|
83
117
|
const originalError = extensions?.originalError as any;
|
|
@@ -120,7 +154,6 @@ export function CopilotMessages({ children }: { children: ReactNode }) {
|
|
|
120
154
|
const visibility = extensions?.visibility as ErrorVisibility;
|
|
121
155
|
const isDev = shouldShowDevConsole(showDevConsole);
|
|
122
156
|
|
|
123
|
-
// If dev console is disabled, don't show ANY error UI to users
|
|
124
157
|
if (!isDev) {
|
|
125
158
|
console.error("CopilotKit Error (hidden in production):", gqlError.message);
|
|
126
159
|
return;
|
|
@@ -136,6 +169,8 @@ export function CopilotMessages({ children }: { children: ReactNode }) {
|
|
|
136
169
|
const ckError = createStructuredError(gqlError);
|
|
137
170
|
if (ckError) {
|
|
138
171
|
setBannerError(ckError);
|
|
172
|
+
// Trace the structured error
|
|
173
|
+
traceUIError(ckError, gqlError);
|
|
139
174
|
} else {
|
|
140
175
|
// Fallback: create a generic error for unstructured GraphQL errors
|
|
141
176
|
const fallbackError = new CopilotKitError({
|
|
@@ -143,6 +178,8 @@ export function CopilotMessages({ children }: { children: ReactNode }) {
|
|
|
143
178
|
code: CopilotKitErrorCode.UNKNOWN,
|
|
144
179
|
});
|
|
145
180
|
setBannerError(fallbackError);
|
|
181
|
+
// Trace the fallback error
|
|
182
|
+
traceUIError(fallbackError, gqlError);
|
|
146
183
|
}
|
|
147
184
|
};
|
|
148
185
|
|
|
@@ -159,10 +196,12 @@ export function CopilotMessages({ children }: { children: ReactNode }) {
|
|
|
159
196
|
code: CopilotKitErrorCode.UNKNOWN,
|
|
160
197
|
});
|
|
161
198
|
setBannerError(fallbackError);
|
|
199
|
+
// Trace the non-GraphQL error
|
|
200
|
+
traceUIError(fallbackError, error);
|
|
162
201
|
}
|
|
163
202
|
}
|
|
164
203
|
},
|
|
165
|
-
[setBannerError, showDevConsole],
|
|
204
|
+
[setBannerError, showDevConsole, traceUIError],
|
|
166
205
|
);
|
|
167
206
|
|
|
168
207
|
useEffect(() => {
|
|
@@ -183,12 +183,14 @@ export function ToastProvider({
|
|
|
183
183
|
border: `1px solid ${colors.border}`,
|
|
184
184
|
borderLeft: `4px solid ${colors.border}`,
|
|
185
185
|
borderRadius: "8px",
|
|
186
|
-
padding: "
|
|
186
|
+
padding: "12px 16px",
|
|
187
187
|
fontSize: "13px",
|
|
188
188
|
boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
|
|
189
189
|
backdropFilter: "blur(8px)",
|
|
190
|
-
maxWidth: "
|
|
191
|
-
|
|
190
|
+
maxWidth: "min(90vw, 700px)",
|
|
191
|
+
width: "100%",
|
|
192
|
+
boxSizing: "border-box",
|
|
193
|
+
overflow: "hidden",
|
|
192
194
|
}}
|
|
193
195
|
>
|
|
194
196
|
<div
|
|
@@ -199,7 +201,15 @@ export function ToastProvider({
|
|
|
199
201
|
gap: "10px",
|
|
200
202
|
}}
|
|
201
203
|
>
|
|
202
|
-
<div
|
|
204
|
+
<div
|
|
205
|
+
style={{
|
|
206
|
+
display: "flex",
|
|
207
|
+
alignItems: "center",
|
|
208
|
+
gap: "8px",
|
|
209
|
+
flex: 1,
|
|
210
|
+
minWidth: 0,
|
|
211
|
+
}}
|
|
212
|
+
>
|
|
203
213
|
<div
|
|
204
214
|
style={{
|
|
205
215
|
width: "12px",
|
|
@@ -209,7 +219,15 @@ export function ToastProvider({
|
|
|
209
219
|
flexShrink: 0,
|
|
210
220
|
}}
|
|
211
221
|
/>
|
|
212
|
-
<div
|
|
222
|
+
<div
|
|
223
|
+
style={{
|
|
224
|
+
display: "flex",
|
|
225
|
+
alignItems: "center",
|
|
226
|
+
gap: "10px",
|
|
227
|
+
flex: 1,
|
|
228
|
+
minWidth: 0,
|
|
229
|
+
}}
|
|
230
|
+
>
|
|
213
231
|
<div
|
|
214
232
|
style={{
|
|
215
233
|
color: colors.text,
|
|
@@ -217,30 +235,37 @@ export function ToastProvider({
|
|
|
217
235
|
fontWeight: "400",
|
|
218
236
|
fontSize: "13px",
|
|
219
237
|
flex: 1,
|
|
220
|
-
|
|
238
|
+
wordBreak: "break-all",
|
|
221
239
|
overflowWrap: "break-word",
|
|
222
|
-
|
|
240
|
+
maxWidth: "550px",
|
|
241
|
+
overflow: "hidden",
|
|
242
|
+
display: "-webkit-box",
|
|
243
|
+
WebkitLineClamp: 10,
|
|
244
|
+
WebkitBoxOrient: "vertical",
|
|
223
245
|
}}
|
|
224
246
|
>
|
|
225
247
|
{(() => {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
.replace(markdownLinkRegex, "") // Remove [text](url)
|
|
233
|
-
.replace(plainUrlRegex, "") // Remove plain URLs
|
|
234
|
-
.replace(/See more:\s*/g, "") // Remove "See more:" text
|
|
235
|
-
.replace(/\s+/g, " ") // Clean up extra spaces
|
|
236
|
-
.trim();
|
|
237
|
-
|
|
238
|
-
// Truncate very long messages for better display
|
|
239
|
-
if (cleanMessage.length > 120) {
|
|
240
|
-
cleanMessage = cleanMessage.substring(0, 117) + "...";
|
|
248
|
+
let message = bannerError.message;
|
|
249
|
+
|
|
250
|
+
// Try to extract the useful message from JSON first
|
|
251
|
+
const jsonMatch = message.match(/'message':\s*'([^']+)'/);
|
|
252
|
+
if (jsonMatch) {
|
|
253
|
+
return jsonMatch[1]; // Return the actual error message
|
|
241
254
|
}
|
|
242
255
|
|
|
243
|
-
|
|
256
|
+
// Strip technical garbage but keep the meaningful message
|
|
257
|
+
message = message.split(" - ")[0]; // Remove everything after " - {"
|
|
258
|
+
message = message.split(": Error code")[0]; // Remove ": Error code: 401"
|
|
259
|
+
message = message.replace(/:\s*\d{3}$/, ""); // Remove trailing ": 401"
|
|
260
|
+
message = message.replace(/See more:.*$/g, ""); // Remove "See more" links
|
|
261
|
+
message = message.trim();
|
|
262
|
+
|
|
263
|
+
// If it's still garbage (contains { or '), use fallback
|
|
264
|
+
// if (message.includes("{") || message.includes("'")) {
|
|
265
|
+
// return "Configuration error.... Please check your setup.";
|
|
266
|
+
// }
|
|
267
|
+
|
|
268
|
+
return message || "Configuration error occurred.";
|
|
244
269
|
})()}
|
|
245
270
|
</div>
|
|
246
271
|
|
|
@@ -262,7 +287,7 @@ export function ToastProvider({
|
|
|
262
287
|
// Check for plain URLs
|
|
263
288
|
const urlMatch = plainUrlRegex.exec(message);
|
|
264
289
|
if (urlMatch) {
|
|
265
|
-
url = urlMatch[0];
|
|
290
|
+
url = urlMatch[0].replace(/[.,;:'"]*$/, ""); // Remove trailing punctuation
|
|
266
291
|
buttonText = "See More";
|
|
267
292
|
}
|
|
268
293
|
}
|