@copilotkit/react-core 1.9.2-next.2 → 1.9.2-next.21
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 +162 -0
- package/dist/{chunk-UHQMV2CE.mjs → chunk-36MGCCPZ.mjs} +2 -2
- package/dist/{chunk-CCESTGAM.mjs → chunk-3OQM3NEK.mjs} +2 -2
- package/dist/{chunk-OUSWPVDT.mjs → chunk-4URMLOBR.mjs} +4 -4
- package/dist/chunk-57K2ZJ5F.mjs +348 -0
- package/dist/chunk-57K2ZJ5F.mjs.map +1 -0
- package/dist/{chunk-LZDDYZEY.mjs → chunk-5BSUSFHM.mjs} +2 -2
- package/dist/{chunk-C6F6EQNA.mjs → chunk-BVK7PLK6.mjs} +2 -2
- package/dist/{chunk-CMKIDDQL.mjs → chunk-DDIBJUWK.mjs} +11 -8
- package/dist/{chunk-CMKIDDQL.mjs.map → chunk-DDIBJUWK.mjs.map} +1 -1
- package/dist/{chunk-NNSXCFQO.mjs → chunk-DGON3GZX.mjs} +42 -8
- package/dist/chunk-DGON3GZX.mjs.map +1 -0
- package/dist/{chunk-6KGEF242.mjs → chunk-DKZTPL66.mjs} +3 -2
- package/dist/chunk-DKZTPL66.mjs.map +1 -0
- package/dist/{chunk-LDACFA2B.mjs → chunk-FN3UA2ZE.mjs} +3 -3
- package/dist/{chunk-RUY6MLHA.mjs → chunk-JWAXDYOW.mjs} +36 -6
- package/dist/chunk-JWAXDYOW.mjs.map +1 -0
- package/dist/{chunk-2FW7HH6W.mjs → chunk-KIXKBJUV.mjs} +3 -3
- package/dist/{chunk-MGIXEJWG.mjs → chunk-MTAJI7HV.mjs} +181 -68
- package/dist/chunk-MTAJI7HV.mjs.map +1 -0
- package/dist/{chunk-L6QAOAE4.mjs → chunk-N2M65NJ2.mjs} +69 -25
- package/dist/chunk-N2M65NJ2.mjs.map +1 -0
- package/dist/{chunk-T42PN5VN.mjs → chunk-NJA5ZLAZ.mjs} +29 -10
- package/dist/chunk-NJA5ZLAZ.mjs.map +1 -0
- package/dist/{chunk-4I7PLQF7.mjs → chunk-QKEH3O4S.mjs} +5 -5
- package/dist/{chunk-FRZZPPIV.mjs → chunk-RAQK4M64.mjs} +2 -2
- package/dist/{chunk-QQZLIEXK.mjs → chunk-SJJNFYGQ.mjs} +3 -3
- package/dist/{chunk-Q5D5XQFA.mjs → chunk-VDADWRS3.mjs} +2 -2
- package/dist/chunk-YAF2LATQ.mjs +310 -0
- package/dist/chunk-YAF2LATQ.mjs.map +1 -0
- package/dist/components/copilot-provider/copilot-messages.js +40 -5
- package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
- package/dist/components/copilot-provider/copilot-messages.mjs +3 -3
- package/dist/components/copilot-provider/copilotkit-props.d.ts +27 -3
- package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.d.ts +1 -1
- package/dist/components/copilot-provider/copilotkit.js +385 -254
- package/dist/components/copilot-provider/copilotkit.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.mjs +10 -10
- package/dist/components/copilot-provider/index.d.ts +1 -1
- package/dist/components/copilot-provider/index.js +385 -254
- package/dist/components/copilot-provider/index.js.map +1 -1
- package/dist/components/copilot-provider/index.mjs +10 -10
- 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.d.ts +1 -1
- package/dist/components/index.js +385 -254
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +10 -10
- 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/context/copilot-context.d.ts +1 -1
- package/dist/context/copilot-context.js +2 -1
- package/dist/context/copilot-context.js.map +1 -1
- package/dist/context/copilot-context.mjs +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +2 -1
- package/dist/context/index.js.map +1 -1
- package/dist/context/index.mjs +1 -1
- package/dist/{copilot-context-f9b2b4c3.d.ts → copilot-context-3ab4fdf5.d.ts} +6 -2
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +232 -71
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +32 -32
- package/dist/hooks/use-chat.d.ts +1 -1
- package/dist/hooks/use-chat.js +295 -156
- package/dist/hooks/use-chat.js.map +1 -1
- package/dist/hooks/use-chat.mjs +6 -6
- package/dist/hooks/use-coagent-state-render.js +2 -1
- package/dist/hooks/use-coagent-state-render.js.map +1 -1
- package/dist/hooks/use-coagent-state-render.mjs +3 -3
- package/dist/hooks/use-coagent.d.ts +1 -1
- package/dist/hooks/use-coagent.js +207 -65
- package/dist/hooks/use-coagent.js.map +1 -1
- package/dist/hooks/use-coagent.mjs +14 -14
- package/dist/hooks/use-copilot-action.js +27 -7
- package/dist/hooks/use-copilot-action.js.map +1 -1
- package/dist/hooks/use-copilot-action.mjs +4 -4
- package/dist/hooks/use-copilot-additional-instructions.js +2 -1
- package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
- package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
- package/dist/hooks/use-copilot-authenticated-action.js +27 -7
- package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
- package/dist/hooks/use-copilot-authenticated-action.mjs +5 -5
- package/dist/hooks/use-copilot-chat.d.ts +1 -1
- package/dist/hooks/use-copilot-chat.js +204 -65
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +13 -13
- package/dist/hooks/use-copilot-readable.js +2 -1
- package/dist/hooks/use-copilot-readable.js.map +1 -1
- package/dist/hooks/use-copilot-readable.mjs +2 -2
- package/dist/hooks/use-copilot-runtime-client.d.ts +2 -0
- package/dist/hooks/use-copilot-runtime-client.js +52 -2
- 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-render.js +2 -1
- package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt-render.mjs +2 -2
- package/dist/hooks/use-langgraph-interrupt.d.ts +1 -1
- package/dist/hooks/use-langgraph-interrupt.js +204 -65
- package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt.mjs +14 -14
- package/dist/hooks/use-make-copilot-document-readable.js +2 -1
- package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
- package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +582 -321
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +33 -33
- package/dist/lib/copilot-task.d.ts +1 -1
- package/dist/lib/copilot-task.js.map +1 -1
- package/dist/lib/copilot-task.mjs +11 -11
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +11 -11
- package/dist/types/interrupt-action.d.ts +1 -1
- package/dist/utils/extract.d.ts +1 -1
- package/dist/utils/extract.js.map +1 -1
- package/dist/utils/extract.mjs +10 -10
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +10 -10
- package/jest.config.js +7 -3
- package/package.json +4 -3
- package/src/components/copilot-provider/__tests__/copilotkit-error.test.tsx +75 -0
- package/src/components/copilot-provider/copilot-messages.tsx +47 -6
- package/src/components/copilot-provider/copilotkit-props.tsx +27 -1
- package/src/components/copilot-provider/copilotkit.tsx +64 -18
- package/src/components/toast/toast-provider.tsx +49 -24
- package/src/components/usage-banner.tsx +144 -147
- package/src/context/copilot-context.tsx +8 -2
- package/src/hooks/use-chat.ts +247 -61
- package/src/hooks/use-coagent.ts +5 -0
- package/src/hooks/use-copilot-action.ts +51 -9
- package/src/hooks/use-copilot-runtime-client.ts +41 -40
- package/tsconfig.json +4 -8
- package/tsup.config.ts +6 -6
- package/dist/chunk-6KGEF242.mjs.map +0 -1
- package/dist/chunk-HD2GE3DK.mjs +0 -359
- package/dist/chunk-HD2GE3DK.mjs.map +0 -1
- package/dist/chunk-L6QAOAE4.mjs.map +0 -1
- package/dist/chunk-MGIXEJWG.mjs.map +0 -1
- package/dist/chunk-NNSXCFQO.mjs.map +0 -1
- package/dist/chunk-RUY6MLHA.mjs.map +0 -1
- package/dist/chunk-T42PN5VN.mjs.map +0 -1
- package/dist/chunk-VRXANACV.mjs +0 -277
- package/dist/chunk-VRXANACV.mjs.map +0 -1
- package/dist/utils/utils.test.d.ts +0 -2
- package/dist/utils/utils.test.js +0 -9
- package/dist/utils/utils.test.js.map +0 -1
- package/dist/utils/utils.test.mjs +0 -7
- package/dist/utils/utils.test.mjs.map +0 -1
- /package/dist/{chunk-UHQMV2CE.mjs.map → chunk-36MGCCPZ.mjs.map} +0 -0
- /package/dist/{chunk-CCESTGAM.mjs.map → chunk-3OQM3NEK.mjs.map} +0 -0
- /package/dist/{chunk-OUSWPVDT.mjs.map → chunk-4URMLOBR.mjs.map} +0 -0
- /package/dist/{chunk-LZDDYZEY.mjs.map → chunk-5BSUSFHM.mjs.map} +0 -0
- /package/dist/{chunk-C6F6EQNA.mjs.map → chunk-BVK7PLK6.mjs.map} +0 -0
- /package/dist/{chunk-LDACFA2B.mjs.map → chunk-FN3UA2ZE.mjs.map} +0 -0
- /package/dist/{chunk-2FW7HH6W.mjs.map → chunk-KIXKBJUV.mjs.map} +0 -0
- /package/dist/{chunk-4I7PLQF7.mjs.map → chunk-QKEH3O4S.mjs.map} +0 -0
- /package/dist/{chunk-FRZZPPIV.mjs.map → chunk-RAQK4M64.mjs.map} +0 -0
- /package/dist/{chunk-QQZLIEXK.mjs.map → chunk-SJJNFYGQ.mjs.map} +0 -0
- /package/dist/{chunk-Q5D5XQFA.mjs.map → chunk-VDADWRS3.mjs.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,167 @@
|
|
|
1
1
|
# ui
|
|
2
2
|
|
|
3
|
+
## 1.9.2-next.21
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 92e8d1c: - fix infinite loop
|
|
8
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.21
|
|
9
|
+
- @copilotkit/shared@1.9.2-next.21
|
|
10
|
+
|
|
11
|
+
## 1.9.2-next.20
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- e1de032: - fix: synchronously execute renderAndWaitForResponse
|
|
16
|
+
|
|
17
|
+
Previously, it was impossible to execute multiple human-in-the-loop (renderAndWaitForResponse)
|
|
18
|
+
calls in a row. Ultimately this was due to an issue with how CopilotKit was rendering the updates
|
|
19
|
+
when multiple renderAndWaitForResponse actions appeared on screen due to a reference based approach.
|
|
20
|
+
|
|
21
|
+
With this change, actions will be executed in a synchronous way appearing almost queue like. This
|
|
22
|
+
works with any combination of action given much more freedom when asking for user input.
|
|
23
|
+
|
|
24
|
+
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
|
|
25
|
+
|
|
26
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.20
|
|
27
|
+
- @copilotkit/shared@1.9.2-next.20
|
|
28
|
+
|
|
29
|
+
## 1.9.2-next.19
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.19
|
|
34
|
+
- @copilotkit/shared@1.9.2-next.19
|
|
35
|
+
|
|
36
|
+
## 1.9.2-next.18
|
|
37
|
+
|
|
38
|
+
### Patch Changes
|
|
39
|
+
|
|
40
|
+
- fac89c2: - refactor: rename onTrace to onError throughout codebase
|
|
41
|
+
|
|
42
|
+
- Rename CopilotTraceEvent to CopilotErrorEvent and CopilotTraceHandler to CopilotErrorHandler
|
|
43
|
+
|
|
44
|
+
- Updated dependencies [fac89c2]
|
|
45
|
+
- @copilotkit/shared@1.9.2-next.18
|
|
46
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.18
|
|
47
|
+
|
|
48
|
+
## 1.9.2-next.17
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.17
|
|
53
|
+
- @copilotkit/shared@1.9.2-next.17
|
|
54
|
+
|
|
55
|
+
## 1.9.2-next.16
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- fe9009c: - feat(langgraph): new thread metadata
|
|
60
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.16
|
|
61
|
+
- @copilotkit/shared@1.9.2-next.16
|
|
62
|
+
|
|
63
|
+
## 1.9.2-next.15
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- cbeccb5: - fix: refrain repeated api calls by memoizing state
|
|
68
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.15
|
|
69
|
+
- @copilotkit/shared@1.9.2-next.15
|
|
70
|
+
|
|
71
|
+
## 1.9.2-next.14
|
|
72
|
+
|
|
73
|
+
### Patch Changes
|
|
74
|
+
|
|
75
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.14
|
|
76
|
+
- @copilotkit/shared@1.9.2-next.14
|
|
77
|
+
|
|
78
|
+
## 1.9.2-next.13
|
|
79
|
+
|
|
80
|
+
### Patch Changes
|
|
81
|
+
|
|
82
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.13
|
|
83
|
+
- @copilotkit/shared@1.9.2-next.13
|
|
84
|
+
|
|
85
|
+
## 1.9.2-next.12
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- 3f8c575: - fix: use time travel for regeneration of messages
|
|
90
|
+
- fix: use a better cutoff for regeneration request
|
|
91
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.12
|
|
92
|
+
- @copilotkit/shared@1.9.2-next.12
|
|
93
|
+
|
|
94
|
+
## 1.9.2-next.11
|
|
95
|
+
|
|
96
|
+
### Patch Changes
|
|
97
|
+
|
|
98
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.11
|
|
99
|
+
- @copilotkit/shared@1.9.2-next.11
|
|
100
|
+
|
|
101
|
+
## 1.9.2-next.10
|
|
102
|
+
|
|
103
|
+
### Patch Changes
|
|
104
|
+
|
|
105
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.10
|
|
106
|
+
- @copilotkit/shared@1.9.2-next.10
|
|
107
|
+
|
|
108
|
+
## 1.9.2-next.9
|
|
109
|
+
|
|
110
|
+
### Patch Changes
|
|
111
|
+
|
|
112
|
+
- 1d1c51d: - feat: surface all errors in structured format
|
|
113
|
+
- Updated dependencies [1d1c51d]
|
|
114
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.9
|
|
115
|
+
- @copilotkit/shared@1.9.2-next.9
|
|
116
|
+
|
|
117
|
+
## 1.9.2-next.8
|
|
118
|
+
|
|
119
|
+
### Patch Changes
|
|
120
|
+
|
|
121
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.8
|
|
122
|
+
- @copilotkit/shared@1.9.2-next.8
|
|
123
|
+
|
|
124
|
+
## 1.9.2-next.7
|
|
125
|
+
|
|
126
|
+
### Patch Changes
|
|
127
|
+
|
|
128
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.7
|
|
129
|
+
- @copilotkit/shared@1.9.2-next.7
|
|
130
|
+
|
|
131
|
+
## 1.9.2-next.6
|
|
132
|
+
|
|
133
|
+
### Patch Changes
|
|
134
|
+
|
|
135
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.6
|
|
136
|
+
- @copilotkit/shared@1.9.2-next.6
|
|
137
|
+
|
|
138
|
+
## 1.9.2-next.5
|
|
139
|
+
|
|
140
|
+
### Patch Changes
|
|
141
|
+
|
|
142
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.5
|
|
143
|
+
- @copilotkit/shared@1.9.2-next.5
|
|
144
|
+
|
|
145
|
+
## 1.9.2-next.4
|
|
146
|
+
|
|
147
|
+
### Patch Changes
|
|
148
|
+
|
|
149
|
+
- 9169ad7: - feat: add onTrace handler for runtime and UI error/event tracking
|
|
150
|
+
- 9169ad7: - feat: add onTrace handler for comprehensive debugging and observability - Add CopilotTraceEvent interfaces with rich debugging context, implement runtime-side tracing with publicApiKey gating, add UI-side error tracing, include comprehensive test coverage, and fix tsup build config to exclude test files
|
|
151
|
+
- fix: extract publicApiKey for all requests + trace GraphQL errors
|
|
152
|
+
- Updated dependencies [9169ad7]
|
|
153
|
+
- Updated dependencies [9169ad7]
|
|
154
|
+
- @copilotkit/shared@1.9.2-next.4
|
|
155
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.4
|
|
156
|
+
|
|
157
|
+
## 1.9.2-next.3
|
|
158
|
+
|
|
159
|
+
### Patch Changes
|
|
160
|
+
|
|
161
|
+
- 35537f1: - fix: memoize nested components to not rerender when content changes
|
|
162
|
+
- @copilotkit/runtime-client-gql@1.9.2-next.3
|
|
163
|
+
- @copilotkit/shared@1.9.2-next.3
|
|
164
|
+
|
|
3
165
|
## 1.9.2-next.2
|
|
4
166
|
|
|
5
167
|
### Patch Changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DKZTPL66.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-make-copilot-document-readable.ts
|
|
6
6
|
import { useEffect, useRef } from "react";
|
|
@@ -20,4 +20,4 @@ function useMakeCopilotDocumentReadable(document, categories, dependencies = [])
|
|
|
20
20
|
export {
|
|
21
21
|
useMakeCopilotDocumentReadable
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
23
|
+
//# sourceMappingURL=chunk-36MGCCPZ.mjs.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-O7ARI5CV.mjs";
|
|
4
4
|
import {
|
|
5
5
|
useToast
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YAF2LATQ.mjs";
|
|
7
7
|
import {
|
|
8
8
|
__async
|
|
9
9
|
} from "./chunk-SKC7AJIV.mjs";
|
|
@@ -99,4 +99,4 @@ export {
|
|
|
99
99
|
useErrorToast,
|
|
100
100
|
useAsyncCallback
|
|
101
101
|
};
|
|
102
|
-
//# sourceMappingURL=chunk-
|
|
102
|
+
//# sourceMappingURL=chunk-3OQM3NEK.mjs.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCopilotChat
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QKEH3O4S.mjs";
|
|
4
4
|
import {
|
|
5
5
|
useToast
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YAF2LATQ.mjs";
|
|
7
7
|
import {
|
|
8
8
|
CopilotContext
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DKZTPL66.mjs";
|
|
10
10
|
import {
|
|
11
11
|
__spreadProps,
|
|
12
12
|
__spreadValues
|
|
@@ -62,4 +62,4 @@ function useLangGraphInterrupt(action, dependencies) {
|
|
|
62
62
|
export {
|
|
63
63
|
useLangGraphInterrupt
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
65
|
+
//# sourceMappingURL=chunk-4URMLOBR.mjs.map
|
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
// src/components/usage-banner.tsx
|
|
2
|
+
import { Severity, ERROR_NAMES, ErrorVisibility } from "@copilotkit/shared";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
var defaultIcons = {
|
|
5
|
+
[Severity.CRITICAL]: /* @__PURE__ */ jsxs(
|
|
6
|
+
"svg",
|
|
7
|
+
{
|
|
8
|
+
viewBox: "0 0 24 24",
|
|
9
|
+
width: "16",
|
|
10
|
+
height: "16",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "2.5",
|
|
13
|
+
fill: "none",
|
|
14
|
+
strokeLinecap: "round",
|
|
15
|
+
strokeLinejoin: "round",
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
18
|
+
/* @__PURE__ */ jsx("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
|
|
19
|
+
/* @__PURE__ */ jsx("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
),
|
|
23
|
+
[Severity.WARNING]: /* @__PURE__ */ jsxs(
|
|
24
|
+
"svg",
|
|
25
|
+
{
|
|
26
|
+
viewBox: "0 0 24 24",
|
|
27
|
+
width: "16",
|
|
28
|
+
height: "16",
|
|
29
|
+
stroke: "currentColor",
|
|
30
|
+
strokeWidth: "2.5",
|
|
31
|
+
fill: "none",
|
|
32
|
+
strokeLinecap: "round",
|
|
33
|
+
strokeLinejoin: "round",
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }),
|
|
36
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
37
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
[Severity.INFO]: /* @__PURE__ */ jsxs(
|
|
42
|
+
"svg",
|
|
43
|
+
{
|
|
44
|
+
viewBox: "0 0 24 24",
|
|
45
|
+
width: "16",
|
|
46
|
+
height: "16",
|
|
47
|
+
stroke: "currentColor",
|
|
48
|
+
strokeWidth: "2.5",
|
|
49
|
+
fill: "none",
|
|
50
|
+
strokeLinecap: "round",
|
|
51
|
+
strokeLinejoin: "round",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
54
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
55
|
+
/* @__PURE__ */ jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
};
|
|
60
|
+
function UsageBanner({
|
|
61
|
+
severity = Severity.CRITICAL,
|
|
62
|
+
message = "",
|
|
63
|
+
icon,
|
|
64
|
+
onClose,
|
|
65
|
+
actions
|
|
66
|
+
}) {
|
|
67
|
+
if (!message || !severity) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const parseMessage = (rawMessage) => {
|
|
71
|
+
if (rawMessage.toLowerCase().includes("authentication") || rawMessage.toLowerCase().includes("api key")) {
|
|
72
|
+
return "Authentication failed. Please check your API key.";
|
|
73
|
+
}
|
|
74
|
+
if (rawMessage.toLowerCase().includes("rate limit")) {
|
|
75
|
+
return "Rate limit exceeded. Please try again later.";
|
|
76
|
+
}
|
|
77
|
+
if (rawMessage.toLowerCase().includes("checkpointer")) {
|
|
78
|
+
return "Agent configuration error. Please check your setup.";
|
|
79
|
+
}
|
|
80
|
+
let cleanMessage2 = rawMessage;
|
|
81
|
+
cleanMessage2 = cleanMessage2.split(" - ")[0];
|
|
82
|
+
cleanMessage2 = cleanMessage2.split(": Error code")[0];
|
|
83
|
+
cleanMessage2 = cleanMessage2.split(": 401")[0];
|
|
84
|
+
cleanMessage2 = cleanMessage2.split(": 403")[0];
|
|
85
|
+
cleanMessage2 = cleanMessage2.split(": 404")[0];
|
|
86
|
+
cleanMessage2 = cleanMessage2.split(": 500")[0];
|
|
87
|
+
cleanMessage2 = cleanMessage2.replace(/See more:.*$/g, "").trim();
|
|
88
|
+
if (cleanMessage2.includes("{") || cleanMessage2.includes("'") || cleanMessage2.length > 60) {
|
|
89
|
+
return "Configuration error. Please check your setup.";
|
|
90
|
+
}
|
|
91
|
+
return cleanMessage2 || "An error occurred. Please check your configuration.";
|
|
92
|
+
};
|
|
93
|
+
const cleanMessage = parseMessage(message);
|
|
94
|
+
const Icon = icon || defaultIcons[severity];
|
|
95
|
+
const themeConfigs = {
|
|
96
|
+
[Severity.INFO]: {
|
|
97
|
+
bg: "rgba(239, 246, 255, 0.95)",
|
|
98
|
+
border: "#93c5fd",
|
|
99
|
+
text: "#1e40af",
|
|
100
|
+
icon: "#3b82f6",
|
|
101
|
+
primaryBtn: "#3b82f6",
|
|
102
|
+
primaryBtnHover: "#2563eb"
|
|
103
|
+
},
|
|
104
|
+
[Severity.WARNING]: {
|
|
105
|
+
bg: "rgba(255, 251, 235, 0.95)",
|
|
106
|
+
border: "#fbbf24",
|
|
107
|
+
text: "#92400e",
|
|
108
|
+
icon: "#f59e0b",
|
|
109
|
+
primaryBtn: "#f59e0b",
|
|
110
|
+
primaryBtnHover: "#d97706"
|
|
111
|
+
},
|
|
112
|
+
[Severity.CRITICAL]: {
|
|
113
|
+
bg: "rgba(254, 242, 242, 0.95)",
|
|
114
|
+
border: "#f87171",
|
|
115
|
+
text: "#991b1b",
|
|
116
|
+
icon: "#ef4444",
|
|
117
|
+
primaryBtn: "#ef4444",
|
|
118
|
+
primaryBtnHover: "#dc2626"
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
const themeConfig = themeConfigs[severity] || themeConfigs[Severity.CRITICAL];
|
|
122
|
+
return /* @__PURE__ */ jsxs(
|
|
123
|
+
"div",
|
|
124
|
+
{
|
|
125
|
+
style: {
|
|
126
|
+
position: "fixed",
|
|
127
|
+
bottom: "24px",
|
|
128
|
+
left: "50%",
|
|
129
|
+
transform: "translateX(-50%)",
|
|
130
|
+
width: "400px",
|
|
131
|
+
maxWidth: "90vw",
|
|
132
|
+
zIndex: 1e4,
|
|
133
|
+
animation: "bannerSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1)"
|
|
134
|
+
},
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ jsx("style", { children: `
|
|
137
|
+
@keyframes bannerSlideIn {
|
|
138
|
+
from {
|
|
139
|
+
opacity: 0;
|
|
140
|
+
transform: translateX(-50%) translateY(20px);
|
|
141
|
+
scale: 0.95;
|
|
142
|
+
}
|
|
143
|
+
to {
|
|
144
|
+
opacity: 1;
|
|
145
|
+
transform: translateX(-50%) translateY(0);
|
|
146
|
+
scale: 1;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
` }),
|
|
150
|
+
/* @__PURE__ */ jsxs(
|
|
151
|
+
"div",
|
|
152
|
+
{
|
|
153
|
+
style: {
|
|
154
|
+
borderRadius: "12px",
|
|
155
|
+
border: `1px solid ${themeConfig.border}`,
|
|
156
|
+
background: themeConfig.bg,
|
|
157
|
+
padding: "14px",
|
|
158
|
+
boxShadow: "0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)",
|
|
159
|
+
position: "relative",
|
|
160
|
+
backdropFilter: "blur(12px)",
|
|
161
|
+
WebkitBackdropFilter: "blur(12px)",
|
|
162
|
+
boxSizing: "border-box",
|
|
163
|
+
overflow: "hidden"
|
|
164
|
+
},
|
|
165
|
+
children: [
|
|
166
|
+
onClose && /* @__PURE__ */ jsx(
|
|
167
|
+
"button",
|
|
168
|
+
{
|
|
169
|
+
onClick: onClose,
|
|
170
|
+
style: {
|
|
171
|
+
position: "absolute",
|
|
172
|
+
top: "8px",
|
|
173
|
+
right: "8px",
|
|
174
|
+
background: "rgba(255, 255, 255, 0.9)",
|
|
175
|
+
border: "none",
|
|
176
|
+
color: themeConfig.text,
|
|
177
|
+
cursor: "pointer",
|
|
178
|
+
fontSize: "16px",
|
|
179
|
+
lineHeight: "1",
|
|
180
|
+
padding: "4px",
|
|
181
|
+
borderRadius: "4px",
|
|
182
|
+
width: "20px",
|
|
183
|
+
height: "20px",
|
|
184
|
+
display: "flex",
|
|
185
|
+
alignItems: "center",
|
|
186
|
+
justifyContent: "center"
|
|
187
|
+
},
|
|
188
|
+
title: "Close",
|
|
189
|
+
children: "\xD7"
|
|
190
|
+
}
|
|
191
|
+
),
|
|
192
|
+
/* @__PURE__ */ jsx(
|
|
193
|
+
"div",
|
|
194
|
+
{
|
|
195
|
+
style: {
|
|
196
|
+
fontSize: "14px",
|
|
197
|
+
fontWeight: 500,
|
|
198
|
+
color: themeConfig.text,
|
|
199
|
+
lineHeight: "1.4",
|
|
200
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
201
|
+
paddingRight: onClose ? "30px" : "0",
|
|
202
|
+
marginBottom: actions ? "12px" : "0",
|
|
203
|
+
wordBreak: "break-word",
|
|
204
|
+
overflow: "hidden",
|
|
205
|
+
textOverflow: "ellipsis",
|
|
206
|
+
display: "-webkit-box",
|
|
207
|
+
WebkitLineClamp: 2,
|
|
208
|
+
WebkitBoxOrient: "vertical"
|
|
209
|
+
},
|
|
210
|
+
children: cleanMessage
|
|
211
|
+
}
|
|
212
|
+
),
|
|
213
|
+
actions && /* @__PURE__ */ jsxs(
|
|
214
|
+
"div",
|
|
215
|
+
{
|
|
216
|
+
style: {
|
|
217
|
+
display: "flex",
|
|
218
|
+
gap: "8px",
|
|
219
|
+
flexWrap: "wrap"
|
|
220
|
+
},
|
|
221
|
+
children: [
|
|
222
|
+
actions.secondary && /* @__PURE__ */ jsx(
|
|
223
|
+
"button",
|
|
224
|
+
{
|
|
225
|
+
onClick: actions.secondary.onClick,
|
|
226
|
+
style: {
|
|
227
|
+
borderRadius: "8px",
|
|
228
|
+
padding: "6px 12px",
|
|
229
|
+
fontSize: "13px",
|
|
230
|
+
fontWeight: 500,
|
|
231
|
+
color: themeConfig.text,
|
|
232
|
+
backgroundColor: "rgba(255, 255, 255, 0.9)",
|
|
233
|
+
border: `1px solid ${themeConfig.border}`,
|
|
234
|
+
cursor: "pointer",
|
|
235
|
+
transition: "all 0.2s ease",
|
|
236
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
237
|
+
},
|
|
238
|
+
onMouseOver: (e) => {
|
|
239
|
+
e.currentTarget.style.backgroundColor = "rgba(255, 255, 255, 1)";
|
|
240
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
241
|
+
},
|
|
242
|
+
onMouseOut: (e) => {
|
|
243
|
+
e.currentTarget.style.backgroundColor = "rgba(255, 255, 255, 0.9)";
|
|
244
|
+
e.currentTarget.style.transform = "translateY(0)";
|
|
245
|
+
},
|
|
246
|
+
children: actions.secondary.label
|
|
247
|
+
}
|
|
248
|
+
),
|
|
249
|
+
actions.primary && /* @__PURE__ */ jsx(
|
|
250
|
+
"button",
|
|
251
|
+
{
|
|
252
|
+
onClick: actions.primary.onClick,
|
|
253
|
+
style: {
|
|
254
|
+
borderRadius: "8px",
|
|
255
|
+
padding: "6px 12px",
|
|
256
|
+
fontSize: "13px",
|
|
257
|
+
fontWeight: 600,
|
|
258
|
+
color: "#fff",
|
|
259
|
+
backgroundColor: themeConfig.primaryBtn,
|
|
260
|
+
border: "none",
|
|
261
|
+
cursor: "pointer",
|
|
262
|
+
transition: "all 0.2s ease",
|
|
263
|
+
boxShadow: "0 2px 8px rgba(0, 0, 0, 0.15)",
|
|
264
|
+
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
265
|
+
},
|
|
266
|
+
onMouseOver: (e) => {
|
|
267
|
+
e.currentTarget.style.backgroundColor = themeConfig.primaryBtnHover;
|
|
268
|
+
e.currentTarget.style.transform = "translateY(-1px)";
|
|
269
|
+
e.currentTarget.style.boxShadow = "0 4px 12px rgba(0, 0, 0, 0.2)";
|
|
270
|
+
},
|
|
271
|
+
onMouseOut: (e) => {
|
|
272
|
+
e.currentTarget.style.backgroundColor = themeConfig.primaryBtn;
|
|
273
|
+
e.currentTarget.style.transform = "translateY(0)";
|
|
274
|
+
e.currentTarget.style.boxShadow = "0 2px 8px rgba(0, 0, 0, 0.15)";
|
|
275
|
+
},
|
|
276
|
+
children: actions.primary.label
|
|
277
|
+
}
|
|
278
|
+
)
|
|
279
|
+
]
|
|
280
|
+
}
|
|
281
|
+
)
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
function renderCopilotKitUsage(error, onClose) {
|
|
290
|
+
if (error.visibility !== ErrorVisibility.BANNER) {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
const extractUrlFromMessage = (message) => {
|
|
294
|
+
const linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g;
|
|
295
|
+
const match = linkRegex.exec(message);
|
|
296
|
+
return match ? match[2] : null;
|
|
297
|
+
};
|
|
298
|
+
const getErrorActions = (error2) => {
|
|
299
|
+
switch (error2.name) {
|
|
300
|
+
case ERROR_NAMES.MISSING_PUBLIC_API_KEY_ERROR:
|
|
301
|
+
return {
|
|
302
|
+
primary: {
|
|
303
|
+
label: "Sign In",
|
|
304
|
+
onClick: () => window.location.href = "https://cloud.copilotkit.ai"
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
case ERROR_NAMES.UPGRADE_REQUIRED_ERROR:
|
|
308
|
+
return {
|
|
309
|
+
primary: {
|
|
310
|
+
label: "Upgrade",
|
|
311
|
+
onClick: () => window.location.href = "https://copilotkit.ai/"
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
case ERROR_NAMES.COPILOT_API_DISCOVERY_ERROR:
|
|
315
|
+
case ERROR_NAMES.COPILOT_REMOTE_ENDPOINT_DISCOVERY_ERROR:
|
|
316
|
+
case ERROR_NAMES.COPILOT_KIT_AGENT_DISCOVERY_ERROR:
|
|
317
|
+
return {
|
|
318
|
+
primary: {
|
|
319
|
+
label: "View Docs",
|
|
320
|
+
onClick: () => {
|
|
321
|
+
var _a;
|
|
322
|
+
const urlFromMessage = extractUrlFromMessage(error2.message);
|
|
323
|
+
const urlFromExtensions = (_a = error2.extensions) == null ? void 0 : _a.troubleshootingUrl;
|
|
324
|
+
const url = urlFromMessage || urlFromExtensions || "https://docs.copilotkit.ai/troubleshooting/common-issues";
|
|
325
|
+
window.open(url, "_blank");
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
default:
|
|
330
|
+
return void 0;
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
return /* @__PURE__ */ jsx(
|
|
334
|
+
UsageBanner,
|
|
335
|
+
{
|
|
336
|
+
severity: error.severity || Severity.CRITICAL,
|
|
337
|
+
message: error.message,
|
|
338
|
+
onClose,
|
|
339
|
+
actions: getErrorActions(error)
|
|
340
|
+
}
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
export {
|
|
345
|
+
UsageBanner,
|
|
346
|
+
renderCopilotKitUsage
|
|
347
|
+
};
|
|
348
|
+
//# sourceMappingURL=chunk-57K2ZJ5F.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/usage-banner.tsx"],"sourcesContent":["import { Severity, CopilotKitError, ERROR_NAMES, ErrorVisibility } from \"@copilotkit/shared\";\n\ninterface UsageBannerProps {\n severity?: Severity;\n message?: string;\n icon?: React.ReactNode;\n onClose?: () => void;\n actions?: {\n primary?: {\n label: string;\n onClick: () => void;\n };\n secondary?: {\n label: string;\n onClick: () => void;\n };\n };\n}\n\nconst defaultIcons: Record<Severity, JSX.Element> = {\n [Severity.CRITICAL]: (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n ),\n [Severity.WARNING]: (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n ),\n [Severity.INFO]: (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n fill=\"none\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n ),\n};\n\nexport function UsageBanner({\n severity = Severity.CRITICAL,\n message = \"\",\n icon,\n onClose,\n actions,\n}: UsageBannerProps) {\n if (!message || !severity) {\n return null;\n }\n\n // Enhanced message parsing to clean up technical details\n const parseMessage = (rawMessage: string) => {\n // console.log(\"Raw message:\", rawMessage); // Debug\n\n // Super aggressive cleaning - handle common error patterns first\n if (\n rawMessage.toLowerCase().includes(\"authentication\") ||\n rawMessage.toLowerCase().includes(\"api key\")\n ) {\n return \"Authentication failed. Please check your API key.\";\n }\n\n if (rawMessage.toLowerCase().includes(\"rate limit\")) {\n return \"Rate limit exceeded. Please try again later.\";\n }\n\n if (rawMessage.toLowerCase().includes(\"checkpointer\")) {\n return \"Agent configuration error. Please check your setup.\";\n }\n\n // For any other error, extract just the main error type\n let cleanMessage = rawMessage;\n\n // Remove everything after the first \" - \" or \":\" followed by technical details\n cleanMessage = cleanMessage.split(\" - \")[0];\n cleanMessage = cleanMessage.split(\": Error code\")[0];\n cleanMessage = cleanMessage.split(\": 401\")[0];\n cleanMessage = cleanMessage.split(\": 403\")[0];\n cleanMessage = cleanMessage.split(\": 404\")[0];\n cleanMessage = cleanMessage.split(\": 500\")[0];\n\n // Remove \"See more\" links\n cleanMessage = cleanMessage.replace(/See more:.*$/g, \"\").trim();\n\n // If still too technical, just show a generic message\n if (cleanMessage.includes(\"{\") || cleanMessage.includes(\"'\") || cleanMessage.length > 60) {\n return \"Configuration error. Please check your setup.\";\n }\n\n return cleanMessage || \"An error occurred. Please check your configuration.\";\n };\n\n const cleanMessage = parseMessage(message);\n const Icon = icon || defaultIcons[severity];\n\n const themeConfigs = {\n [Severity.INFO]: {\n bg: \"rgba(239, 246, 255, 0.95)\",\n border: \"#93c5fd\",\n text: \"#1e40af\",\n icon: \"#3b82f6\",\n primaryBtn: \"#3b82f6\",\n primaryBtnHover: \"#2563eb\",\n },\n [Severity.WARNING]: {\n bg: \"rgba(255, 251, 235, 0.95)\",\n border: \"#fbbf24\",\n text: \"#92400e\",\n icon: \"#f59e0b\",\n primaryBtn: \"#f59e0b\",\n primaryBtnHover: \"#d97706\",\n },\n [Severity.CRITICAL]: {\n bg: \"rgba(254, 242, 242, 0.95)\",\n border: \"#f87171\",\n text: \"#991b1b\",\n icon: \"#ef4444\",\n primaryBtn: \"#ef4444\",\n primaryBtnHover: \"#dc2626\",\n },\n };\n\n const themeConfig = themeConfigs[severity] || themeConfigs[Severity.CRITICAL];\n\n return (\n <div\n style={{\n position: \"fixed\",\n bottom: \"24px\",\n left: \"50%\",\n transform: \"translateX(-50%)\",\n width: \"400px\",\n maxWidth: \"90vw\",\n zIndex: 10000,\n animation: \"bannerSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1)\",\n }}\n >\n <style>\n {`\n @keyframes bannerSlideIn {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(20px);\n scale: 0.95;\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n scale: 1;\n }\n }\n `}\n </style>\n <div\n style={{\n borderRadius: \"12px\",\n border: `1px solid ${themeConfig.border}`,\n background: themeConfig.bg,\n padding: \"14px\",\n boxShadow: \"0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)\",\n position: \"relative\",\n backdropFilter: \"blur(12px)\",\n WebkitBackdropFilter: \"blur(12px)\",\n boxSizing: \"border-box\",\n overflow: \"hidden\",\n }}\n >\n {/* Close button */}\n {onClose && (\n <button\n onClick={onClose}\n style={{\n position: \"absolute\",\n top: \"8px\",\n right: \"8px\",\n background: \"rgba(255, 255, 255, 0.9)\",\n border: \"none\",\n color: themeConfig.text,\n cursor: \"pointer\",\n fontSize: \"16px\",\n lineHeight: \"1\",\n padding: \"4px\",\n borderRadius: \"4px\",\n width: \"20px\",\n height: \"20px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n title=\"Close\"\n >\n ×\n </button>\n )}\n\n {/* Message */}\n <div\n style={{\n fontSize: \"14px\",\n fontWeight: 500,\n color: themeConfig.text,\n lineHeight: \"1.4\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n paddingRight: onClose ? \"30px\" : \"0\",\n marginBottom: actions ? \"12px\" : \"0\",\n wordBreak: \"break-word\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitLineClamp: 2,\n WebkitBoxOrient: \"vertical\",\n }}\n >\n {cleanMessage}\n </div>\n\n {/* Actions */}\n {actions && (\n <div\n style={{\n display: \"flex\",\n gap: \"8px\",\n flexWrap: \"wrap\",\n }}\n >\n {actions.secondary && (\n <button\n onClick={actions.secondary.onClick}\n style={{\n borderRadius: \"8px\",\n padding: \"6px 12px\",\n fontSize: \"13px\",\n fontWeight: 500,\n color: themeConfig.text,\n backgroundColor: \"rgba(255, 255, 255, 0.9)\",\n border: `1px solid ${themeConfig.border}`,\n cursor: \"pointer\",\n transition: \"all 0.2s ease\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n }}\n onMouseOver={(e) => {\n e.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 1)\";\n e.currentTarget.style.transform = \"translateY(-1px)\";\n }}\n onMouseOut={(e) => {\n e.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.9)\";\n e.currentTarget.style.transform = \"translateY(0)\";\n }}\n >\n {actions.secondary.label}\n </button>\n )}\n {actions.primary && (\n <button\n onClick={actions.primary.onClick}\n style={{\n borderRadius: \"8px\",\n padding: \"6px 12px\",\n fontSize: \"13px\",\n fontWeight: 600,\n color: \"#fff\",\n backgroundColor: themeConfig.primaryBtn,\n border: \"none\",\n cursor: \"pointer\",\n transition: \"all 0.2s ease\",\n boxShadow: \"0 2px 8px rgba(0, 0, 0, 0.15)\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n }}\n onMouseOver={(e) => {\n e.currentTarget.style.backgroundColor = themeConfig.primaryBtnHover;\n e.currentTarget.style.transform = \"translateY(-1px)\";\n e.currentTarget.style.boxShadow = \"0 4px 12px rgba(0, 0, 0, 0.2)\";\n }}\n onMouseOut={(e) => {\n e.currentTarget.style.backgroundColor = themeConfig.primaryBtn;\n e.currentTarget.style.transform = \"translateY(0)\";\n e.currentTarget.style.boxShadow = \"0 2px 8px rgba(0, 0, 0, 0.15)\";\n }}\n >\n {actions.primary.label}\n </button>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport function renderCopilotKitUsage(error: CopilotKitError, onClose?: () => void) {\n // Route based on error visibility level\n if (error.visibility !== ErrorVisibility.BANNER) {\n return null;\n }\n\n // Extract URL from markdown links in the message\n const extractUrlFromMessage = (message: string): string | null => {\n const linkRegex = /\\[([^\\]]+)\\]\\(([^)]+)\\)/g;\n const match = linkRegex.exec(message);\n return match ? match[2] : null;\n };\n\n // Get action button based on error type\n const getErrorActions = (error: CopilotKitError) => {\n switch (error.name) {\n case ERROR_NAMES.MISSING_PUBLIC_API_KEY_ERROR:\n return {\n primary: {\n label: \"Sign In\",\n onClick: () => (window.location.href = \"https://cloud.copilotkit.ai\"),\n },\n };\n case ERROR_NAMES.UPGRADE_REQUIRED_ERROR:\n return {\n primary: {\n label: \"Upgrade\",\n onClick: () => (window.location.href = \"https://copilotkit.ai/\"),\n },\n };\n case ERROR_NAMES.COPILOT_API_DISCOVERY_ERROR:\n case ERROR_NAMES.COPILOT_REMOTE_ENDPOINT_DISCOVERY_ERROR:\n case ERROR_NAMES.COPILOT_KIT_AGENT_DISCOVERY_ERROR:\n return {\n primary: {\n label: \"View Docs\",\n onClick: () => {\n // Try to get URL from the error message first, then extensions, then default\n const urlFromMessage = extractUrlFromMessage(error.message);\n const urlFromExtensions = (error.extensions as any)?.troubleshootingUrl;\n const url =\n urlFromMessage ||\n urlFromExtensions ||\n \"https://docs.copilotkit.ai/troubleshooting/common-issues\";\n window.open(url, \"_blank\");\n },\n },\n };\n default:\n return undefined;\n }\n };\n\n return (\n <UsageBanner\n severity={error.severity || Severity.CRITICAL}\n message={error.message}\n onClose={onClose}\n actions={getErrorActions(error)}\n />\n );\n}\n"],"mappings":"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","names":["cleanMessage","error"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DKZTPL66.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-copilot-readable.ts
|
|
6
6
|
import { useEffect, useRef } from "react";
|
|
@@ -34,4 +34,4 @@ function useCopilotReadable({
|
|
|
34
34
|
export {
|
|
35
35
|
useCopilotReadable
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
37
|
+
//# sourceMappingURL=chunk-5BSUSFHM.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCopilotContext
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DKZTPL66.mjs";
|
|
4
4
|
|
|
5
5
|
// src/hooks/use-copilot-additional-instructions.ts
|
|
6
6
|
import { useEffect } from "react";
|
|
@@ -21,4 +21,4 @@ function useCopilotAdditionalInstructions({ instructions, available = "enabled"
|
|
|
21
21
|
export {
|
|
22
22
|
useCopilotAdditionalInstructions
|
|
23
23
|
};
|
|
24
|
-
//# sourceMappingURL=chunk-
|
|
24
|
+
//# sourceMappingURL=chunk-BVK7PLK6.mjs.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCopilotChat
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-QKEH3O4S.mjs";
|
|
4
4
|
import {
|
|
5
5
|
useCopilotMessagesContext
|
|
6
6
|
} from "./chunk-DCTJZ742.mjs";
|
|
7
|
-
import {
|
|
8
|
-
useCopilotRuntimeClient
|
|
9
|
-
} from "./chunk-RUY6MLHA.mjs";
|
|
10
7
|
import {
|
|
11
8
|
useAsyncCallback
|
|
12
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3OQM3NEK.mjs";
|
|
10
|
+
import {
|
|
11
|
+
useCopilotRuntimeClient
|
|
12
|
+
} from "./chunk-JWAXDYOW.mjs";
|
|
13
13
|
import {
|
|
14
14
|
useToast
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-YAF2LATQ.mjs";
|
|
16
16
|
import {
|
|
17
17
|
useCopilotContext
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DKZTPL66.mjs";
|
|
19
19
|
import {
|
|
20
20
|
__async,
|
|
21
21
|
__spreadProps,
|
|
@@ -76,6 +76,9 @@ function useCoAgent(options) {
|
|
|
76
76
|
threadId,
|
|
77
77
|
agentName: name
|
|
78
78
|
});
|
|
79
|
+
if (result.error) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
79
82
|
const newState = (_b = (_a = result.data) == null ? void 0 : _a.loadAgentState) == null ? void 0 : _b.state;
|
|
80
83
|
if (newState === lastLoadedState.current)
|
|
81
84
|
return;
|
|
@@ -207,4 +210,4 @@ export {
|
|
|
207
210
|
stopAgent,
|
|
208
211
|
runAgent
|
|
209
212
|
};
|
|
210
|
-
//# sourceMappingURL=chunk-
|
|
213
|
+
//# sourceMappingURL=chunk-DDIBJUWK.mjs.map
|