@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.
Files changed (170) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/dist/{chunk-UHQMV2CE.mjs → chunk-36MGCCPZ.mjs} +2 -2
  3. package/dist/{chunk-CCESTGAM.mjs → chunk-3OQM3NEK.mjs} +2 -2
  4. package/dist/{chunk-OUSWPVDT.mjs → chunk-4URMLOBR.mjs} +4 -4
  5. package/dist/chunk-57K2ZJ5F.mjs +348 -0
  6. package/dist/chunk-57K2ZJ5F.mjs.map +1 -0
  7. package/dist/{chunk-LZDDYZEY.mjs → chunk-5BSUSFHM.mjs} +2 -2
  8. package/dist/{chunk-C6F6EQNA.mjs → chunk-BVK7PLK6.mjs} +2 -2
  9. package/dist/{chunk-CMKIDDQL.mjs → chunk-DDIBJUWK.mjs} +11 -8
  10. package/dist/{chunk-CMKIDDQL.mjs.map → chunk-DDIBJUWK.mjs.map} +1 -1
  11. package/dist/{chunk-NNSXCFQO.mjs → chunk-DGON3GZX.mjs} +42 -8
  12. package/dist/chunk-DGON3GZX.mjs.map +1 -0
  13. package/dist/{chunk-6KGEF242.mjs → chunk-DKZTPL66.mjs} +3 -2
  14. package/dist/chunk-DKZTPL66.mjs.map +1 -0
  15. package/dist/{chunk-LDACFA2B.mjs → chunk-FN3UA2ZE.mjs} +3 -3
  16. package/dist/{chunk-RUY6MLHA.mjs → chunk-JWAXDYOW.mjs} +36 -6
  17. package/dist/chunk-JWAXDYOW.mjs.map +1 -0
  18. package/dist/{chunk-2FW7HH6W.mjs → chunk-KIXKBJUV.mjs} +3 -3
  19. package/dist/{chunk-MGIXEJWG.mjs → chunk-MTAJI7HV.mjs} +181 -68
  20. package/dist/chunk-MTAJI7HV.mjs.map +1 -0
  21. package/dist/{chunk-L6QAOAE4.mjs → chunk-N2M65NJ2.mjs} +69 -25
  22. package/dist/chunk-N2M65NJ2.mjs.map +1 -0
  23. package/dist/{chunk-T42PN5VN.mjs → chunk-NJA5ZLAZ.mjs} +29 -10
  24. package/dist/chunk-NJA5ZLAZ.mjs.map +1 -0
  25. package/dist/{chunk-4I7PLQF7.mjs → chunk-QKEH3O4S.mjs} +5 -5
  26. package/dist/{chunk-FRZZPPIV.mjs → chunk-RAQK4M64.mjs} +2 -2
  27. package/dist/{chunk-QQZLIEXK.mjs → chunk-SJJNFYGQ.mjs} +3 -3
  28. package/dist/{chunk-Q5D5XQFA.mjs → chunk-VDADWRS3.mjs} +2 -2
  29. package/dist/chunk-YAF2LATQ.mjs +310 -0
  30. package/dist/chunk-YAF2LATQ.mjs.map +1 -0
  31. package/dist/components/copilot-provider/copilot-messages.js +40 -5
  32. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  33. package/dist/components/copilot-provider/copilot-messages.mjs +3 -3
  34. package/dist/components/copilot-provider/copilotkit-props.d.ts +27 -3
  35. package/dist/components/copilot-provider/copilotkit-props.js.map +1 -1
  36. package/dist/components/copilot-provider/copilotkit.d.ts +1 -1
  37. package/dist/components/copilot-provider/copilotkit.js +385 -254
  38. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  39. package/dist/components/copilot-provider/copilotkit.mjs +10 -10
  40. package/dist/components/copilot-provider/index.d.ts +1 -1
  41. package/dist/components/copilot-provider/index.js +385 -254
  42. package/dist/components/copilot-provider/index.js.map +1 -1
  43. package/dist/components/copilot-provider/index.mjs +10 -10
  44. package/dist/components/error-boundary/error-boundary.js +135 -146
  45. package/dist/components/error-boundary/error-boundary.js.map +1 -1
  46. package/dist/components/error-boundary/error-boundary.mjs +4 -4
  47. package/dist/components/error-boundary/error-utils.js.map +1 -1
  48. package/dist/components/error-boundary/error-utils.mjs +2 -2
  49. package/dist/components/index.d.ts +1 -1
  50. package/dist/components/index.js +385 -254
  51. package/dist/components/index.js.map +1 -1
  52. package/dist/components/index.mjs +10 -10
  53. package/dist/components/toast/toast-provider.js +118 -85
  54. package/dist/components/toast/toast-provider.js.map +1 -1
  55. package/dist/components/toast/toast-provider.mjs +1 -1
  56. package/dist/components/usage-banner.js +135 -146
  57. package/dist/components/usage-banner.js.map +1 -1
  58. package/dist/components/usage-banner.mjs +1 -1
  59. package/dist/context/copilot-context.d.ts +1 -1
  60. package/dist/context/copilot-context.js +2 -1
  61. package/dist/context/copilot-context.js.map +1 -1
  62. package/dist/context/copilot-context.mjs +1 -1
  63. package/dist/context/index.d.ts +1 -1
  64. package/dist/context/index.js +2 -1
  65. package/dist/context/index.js.map +1 -1
  66. package/dist/context/index.mjs +1 -1
  67. package/dist/{copilot-context-f9b2b4c3.d.ts → copilot-context-3ab4fdf5.d.ts} +6 -2
  68. package/dist/hooks/index.d.ts +1 -1
  69. package/dist/hooks/index.js +232 -71
  70. package/dist/hooks/index.js.map +1 -1
  71. package/dist/hooks/index.mjs +32 -32
  72. package/dist/hooks/use-chat.d.ts +1 -1
  73. package/dist/hooks/use-chat.js +295 -156
  74. package/dist/hooks/use-chat.js.map +1 -1
  75. package/dist/hooks/use-chat.mjs +6 -6
  76. package/dist/hooks/use-coagent-state-render.js +2 -1
  77. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  78. package/dist/hooks/use-coagent-state-render.mjs +3 -3
  79. package/dist/hooks/use-coagent.d.ts +1 -1
  80. package/dist/hooks/use-coagent.js +207 -65
  81. package/dist/hooks/use-coagent.js.map +1 -1
  82. package/dist/hooks/use-coagent.mjs +14 -14
  83. package/dist/hooks/use-copilot-action.js +27 -7
  84. package/dist/hooks/use-copilot-action.js.map +1 -1
  85. package/dist/hooks/use-copilot-action.mjs +4 -4
  86. package/dist/hooks/use-copilot-additional-instructions.js +2 -1
  87. package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
  88. package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
  89. package/dist/hooks/use-copilot-authenticated-action.js +27 -7
  90. package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
  91. package/dist/hooks/use-copilot-authenticated-action.mjs +5 -5
  92. package/dist/hooks/use-copilot-chat.d.ts +1 -1
  93. package/dist/hooks/use-copilot-chat.js +204 -65
  94. package/dist/hooks/use-copilot-chat.js.map +1 -1
  95. package/dist/hooks/use-copilot-chat.mjs +13 -13
  96. package/dist/hooks/use-copilot-readable.js +2 -1
  97. package/dist/hooks/use-copilot-readable.js.map +1 -1
  98. package/dist/hooks/use-copilot-readable.mjs +2 -2
  99. package/dist/hooks/use-copilot-runtime-client.d.ts +2 -0
  100. package/dist/hooks/use-copilot-runtime-client.js +52 -2
  101. package/dist/hooks/use-copilot-runtime-client.js.map +1 -1
  102. package/dist/hooks/use-copilot-runtime-client.mjs +2 -2
  103. package/dist/hooks/use-langgraph-interrupt-render.js +2 -1
  104. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  105. package/dist/hooks/use-langgraph-interrupt-render.mjs +2 -2
  106. package/dist/hooks/use-langgraph-interrupt.d.ts +1 -1
  107. package/dist/hooks/use-langgraph-interrupt.js +204 -65
  108. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  109. package/dist/hooks/use-langgraph-interrupt.mjs +14 -14
  110. package/dist/hooks/use-make-copilot-document-readable.js +2 -1
  111. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  112. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  113. package/dist/index.d.ts +1 -1
  114. package/dist/index.js +582 -321
  115. package/dist/index.js.map +1 -1
  116. package/dist/index.mjs +33 -33
  117. package/dist/lib/copilot-task.d.ts +1 -1
  118. package/dist/lib/copilot-task.js.map +1 -1
  119. package/dist/lib/copilot-task.mjs +11 -11
  120. package/dist/lib/index.d.ts +1 -1
  121. package/dist/lib/index.js.map +1 -1
  122. package/dist/lib/index.mjs +11 -11
  123. package/dist/types/interrupt-action.d.ts +1 -1
  124. package/dist/utils/extract.d.ts +1 -1
  125. package/dist/utils/extract.js.map +1 -1
  126. package/dist/utils/extract.mjs +10 -10
  127. package/dist/utils/index.d.ts +1 -1
  128. package/dist/utils/index.js.map +1 -1
  129. package/dist/utils/index.mjs +10 -10
  130. package/jest.config.js +7 -3
  131. package/package.json +4 -3
  132. package/src/components/copilot-provider/__tests__/copilotkit-error.test.tsx +75 -0
  133. package/src/components/copilot-provider/copilot-messages.tsx +47 -6
  134. package/src/components/copilot-provider/copilotkit-props.tsx +27 -1
  135. package/src/components/copilot-provider/copilotkit.tsx +64 -18
  136. package/src/components/toast/toast-provider.tsx +49 -24
  137. package/src/components/usage-banner.tsx +144 -147
  138. package/src/context/copilot-context.tsx +8 -2
  139. package/src/hooks/use-chat.ts +247 -61
  140. package/src/hooks/use-coagent.ts +5 -0
  141. package/src/hooks/use-copilot-action.ts +51 -9
  142. package/src/hooks/use-copilot-runtime-client.ts +41 -40
  143. package/tsconfig.json +4 -8
  144. package/tsup.config.ts +6 -6
  145. package/dist/chunk-6KGEF242.mjs.map +0 -1
  146. package/dist/chunk-HD2GE3DK.mjs +0 -359
  147. package/dist/chunk-HD2GE3DK.mjs.map +0 -1
  148. package/dist/chunk-L6QAOAE4.mjs.map +0 -1
  149. package/dist/chunk-MGIXEJWG.mjs.map +0 -1
  150. package/dist/chunk-NNSXCFQO.mjs.map +0 -1
  151. package/dist/chunk-RUY6MLHA.mjs.map +0 -1
  152. package/dist/chunk-T42PN5VN.mjs.map +0 -1
  153. package/dist/chunk-VRXANACV.mjs +0 -277
  154. package/dist/chunk-VRXANACV.mjs.map +0 -1
  155. package/dist/utils/utils.test.d.ts +0 -2
  156. package/dist/utils/utils.test.js +0 -9
  157. package/dist/utils/utils.test.js.map +0 -1
  158. package/dist/utils/utils.test.mjs +0 -7
  159. package/dist/utils/utils.test.mjs.map +0 -1
  160. /package/dist/{chunk-UHQMV2CE.mjs.map → chunk-36MGCCPZ.mjs.map} +0 -0
  161. /package/dist/{chunk-CCESTGAM.mjs.map → chunk-3OQM3NEK.mjs.map} +0 -0
  162. /package/dist/{chunk-OUSWPVDT.mjs.map → chunk-4URMLOBR.mjs.map} +0 -0
  163. /package/dist/{chunk-LZDDYZEY.mjs.map → chunk-5BSUSFHM.mjs.map} +0 -0
  164. /package/dist/{chunk-C6F6EQNA.mjs.map → chunk-BVK7PLK6.mjs.map} +0 -0
  165. /package/dist/{chunk-LDACFA2B.mjs.map → chunk-FN3UA2ZE.mjs.map} +0 -0
  166. /package/dist/{chunk-2FW7HH6W.mjs.map → chunk-KIXKBJUV.mjs.map} +0 -0
  167. /package/dist/{chunk-4I7PLQF7.mjs.map → chunk-QKEH3O4S.mjs.map} +0 -0
  168. /package/dist/{chunk-FRZZPPIV.mjs.map → chunk-RAQK4M64.mjs.map} +0 -0
  169. /package/dist/{chunk-QQZLIEXK.mjs.map → chunk-SJJNFYGQ.mjs.map} +0 -0
  170. /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-6KGEF242.mjs";
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-UHQMV2CE.mjs.map
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-VRXANACV.mjs";
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-CCESTGAM.mjs.map
102
+ //# sourceMappingURL=chunk-3OQM3NEK.mjs.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  useCopilotChat
3
- } from "./chunk-4I7PLQF7.mjs";
3
+ } from "./chunk-QKEH3O4S.mjs";
4
4
  import {
5
5
  useToast
6
- } from "./chunk-VRXANACV.mjs";
6
+ } from "./chunk-YAF2LATQ.mjs";
7
7
  import {
8
8
  CopilotContext
9
- } from "./chunk-6KGEF242.mjs";
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-OUSWPVDT.mjs.map
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":";AAAA,SAAS,UAA2B,aAAa,uBAAuB;AAqBpE,SAUE,KAVF;AAFJ,IAAM,eAA8C;AAAA,EAClD,CAAC,SAAS,QAAQ,GAChB;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,QAAO;AAAA,MACP,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,MAAK;AAAA,MACL,eAAc;AAAA,MACd,gBAAe;AAAA,MAEf;AAAA,4BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,QAC/B,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK;AAAA,QACpC,oBAAC,UAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA;AAAA;AAAA,EACtC;AAAA,EAEF,CAAC,SAAS,OAAO,GACf;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,QAAO;AAAA,MACP,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,MAAK;AAAA,MACL,eAAc;AAAA,MACd,gBAAe;AAAA,MAEf;AAAA,4BAAC,UAAK,GAAE,6EAA4E;AAAA,QACpF,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK;AAAA,QACrC,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,SAAQ,IAAG,MAAK;AAAA;AAAA;AAAA,EAC3C;AAAA,EAEF,CAAC,SAAS,IAAI,GACZ;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,OAAM;AAAA,MACN,QAAO;AAAA,MACP,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,MAAK;AAAA,MACL,eAAc;AAAA,MACd,gBAAe;AAAA,MAEf;AAAA,4BAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,QAC/B,oBAAC,UAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK;AAAA,QACtC,oBAAC,UAAK,IAAG,MAAK,IAAG,KAAI,IAAG,SAAQ,IAAG,KAAI;AAAA;AAAA;AAAA,EACzC;AAEJ;AAEO,SAAS,YAAY;AAAA,EAC1B,WAAW,SAAS;AAAA,EACpB,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,GAAqB;AACnB,MAAI,CAAC,WAAW,CAAC,UAAU;AACzB,WAAO;AAAA,EACT;AAGA,QAAM,eAAe,CAAC,eAAuB;AAI3C,QACE,WAAW,YAAY,EAAE,SAAS,gBAAgB,KAClD,WAAW,YAAY,EAAE,SAAS,SAAS,GAC3C;AACA,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,YAAY,EAAE,SAAS,YAAY,GAAG;AACnD,aAAO;AAAA,IACT;AAEA,QAAI,WAAW,YAAY,EAAE,SAAS,cAAc,GAAG;AACrD,aAAO;AAAA,IACT;AAGA,QAAIA,gBAAe;AAGnB,IAAAA,gBAAeA,cAAa,MAAM,KAAK,EAAE,CAAC;AAC1C,IAAAA,gBAAeA,cAAa,MAAM,cAAc,EAAE,CAAC;AACnD,IAAAA,gBAAeA,cAAa,MAAM,OAAO,EAAE,CAAC;AAC5C,IAAAA,gBAAeA,cAAa,MAAM,OAAO,EAAE,CAAC;AAC5C,IAAAA,gBAAeA,cAAa,MAAM,OAAO,EAAE,CAAC;AAC5C,IAAAA,gBAAeA,cAAa,MAAM,OAAO,EAAE,CAAC;AAG5C,IAAAA,gBAAeA,cAAa,QAAQ,iBAAiB,EAAE,EAAE,KAAK;AAG9D,QAAIA,cAAa,SAAS,GAAG,KAAKA,cAAa,SAAS,GAAG,KAAKA,cAAa,SAAS,IAAI;AACxF,aAAO;AAAA,IACT;AAEA,WAAOA,iBAAgB;AAAA,EACzB;AAEA,QAAM,eAAe,aAAa,OAAO;AACzC,QAAM,OAAO,QAAQ,aAAa,QAAQ;AAE1C,QAAM,eAAe;AAAA,IACnB,CAAC,SAAS,IAAI,GAAG;AAAA,MACf,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,SAAS,OAAO,GAAG;AAAA,MAClB,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,SAAS,QAAQ,GAAG;AAAA,MACnB,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,cAAc,aAAa,QAAQ,KAAK,aAAa,SAAS,QAAQ;AAE5E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,WAAW;AAAA,QACX,OAAO;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,MACb;AAAA,MAEA;AAAA,4BAAC,WACE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAcH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,cACL,cAAc;AAAA,cACd,QAAQ,aAAa,YAAY;AAAA,cACjC,YAAY,YAAY;AAAA,cACxB,SAAS;AAAA,cACT,WAAW;AAAA,cACX,UAAU;AAAA,cACV,gBAAgB;AAAA,cAChB,sBAAsB;AAAA,cACtB,WAAW;AAAA,cACX,UAAU;AAAA,YACZ;AAAA,YAGC;AAAA,yBACC;AAAA,gBAAC;AAAA;AAAA,kBACC,SAAS;AAAA,kBACT,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,KAAK;AAAA,oBACL,OAAO;AAAA,oBACP,YAAY;AAAA,oBACZ,QAAQ;AAAA,oBACR,OAAO,YAAY;AAAA,oBACnB,QAAQ;AAAA,oBACR,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,SAAS;AAAA,oBACT,cAAc;AAAA,oBACd,OAAO;AAAA,oBACP,QAAQ;AAAA,oBACR,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,gBAAgB;AAAA,kBAClB;AAAA,kBACA,OAAM;AAAA,kBACP;AAAA;AAAA,cAED;AAAA,cAIF;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,oBACL,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,OAAO,YAAY;AAAA,oBACnB,YAAY;AAAA,oBACZ,YAAY;AAAA,oBACZ,cAAc,UAAU,SAAS;AAAA,oBACjC,cAAc,UAAU,SAAS;AAAA,oBACjC,WAAW;AAAA,oBACX,UAAU;AAAA,oBACV,cAAc;AAAA,oBACd,SAAS;AAAA,oBACT,iBAAiB;AAAA,oBACjB,iBAAiB;AAAA,kBACnB;AAAA,kBAEC;AAAA;AAAA,cACH;AAAA,cAGC,WACC;AAAA,gBAAC;AAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,KAAK;AAAA,oBACL,UAAU;AAAA,kBACZ;AAAA,kBAEC;AAAA,4BAAQ,aACP;AAAA,sBAAC;AAAA;AAAA,wBACC,SAAS,QAAQ,UAAU;AAAA,wBAC3B,OAAO;AAAA,0BACL,cAAc;AAAA,0BACd,SAAS;AAAA,0BACT,UAAU;AAAA,0BACV,YAAY;AAAA,0BACZ,OAAO,YAAY;AAAA,0BACnB,iBAAiB;AAAA,0BACjB,QAAQ,aAAa,YAAY;AAAA,0BACjC,QAAQ;AAAA,0BACR,YAAY;AAAA,0BACZ,YAAY;AAAA,wBACd;AAAA,wBACA,aAAa,CAAC,MAAM;AAClB,4BAAE,cAAc,MAAM,kBAAkB;AACxC,4BAAE,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBACA,YAAY,CAAC,MAAM;AACjB,4BAAE,cAAc,MAAM,kBAAkB;AACxC,4BAAE,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBAEC,kBAAQ,UAAU;AAAA;AAAA,oBACrB;AAAA,oBAED,QAAQ,WACP;AAAA,sBAAC;AAAA;AAAA,wBACC,SAAS,QAAQ,QAAQ;AAAA,wBACzB,OAAO;AAAA,0BACL,cAAc;AAAA,0BACd,SAAS;AAAA,0BACT,UAAU;AAAA,0BACV,YAAY;AAAA,0BACZ,OAAO;AAAA,0BACP,iBAAiB,YAAY;AAAA,0BAC7B,QAAQ;AAAA,0BACR,QAAQ;AAAA,0BACR,YAAY;AAAA,0BACZ,WAAW;AAAA,0BACX,YAAY;AAAA,wBACd;AAAA,wBACA,aAAa,CAAC,MAAM;AAClB,4BAAE,cAAc,MAAM,kBAAkB,YAAY;AACpD,4BAAE,cAAc,MAAM,YAAY;AAClC,4BAAE,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBACA,YAAY,CAAC,MAAM;AACjB,4BAAE,cAAc,MAAM,kBAAkB,YAAY;AACpD,4BAAE,cAAc,MAAM,YAAY;AAClC,4BAAE,cAAc,MAAM,YAAY;AAAA,wBACpC;AAAA,wBAEC,kBAAQ,QAAQ;AAAA;AAAA,oBACnB;AAAA;AAAA;AAAA,cAEJ;AAAA;AAAA;AAAA,QAEJ;AAAA;AAAA;AAAA,EACF;AAEJ;AAEO,SAAS,sBAAsB,OAAwB,SAAsB;AAElF,MAAI,MAAM,eAAe,gBAAgB,QAAQ;AAC/C,WAAO;AAAA,EACT;AAGA,QAAM,wBAAwB,CAAC,YAAmC;AAChE,UAAM,YAAY;AAClB,UAAM,QAAQ,UAAU,KAAK,OAAO;AACpC,WAAO,QAAQ,MAAM,CAAC,IAAI;AAAA,EAC5B;AAGA,QAAM,kBAAkB,CAACC,WAA2B;AAClD,YAAQA,OAAM,MAAM;AAAA,MAClB,KAAK,YAAY;AACf,eAAO;AAAA,UACL,SAAS;AAAA,YACP,OAAO;AAAA,YACP,SAAS,MAAO,OAAO,SAAS,OAAO;AAAA,UACzC;AAAA,QACF;AAAA,MACF,KAAK,YAAY;AACf,eAAO;AAAA,UACL,SAAS;AAAA,YACP,OAAO;AAAA,YACP,SAAS,MAAO,OAAO,SAAS,OAAO;AAAA,UACzC;AAAA,QACF;AAAA,MACF,KAAK,YAAY;AAAA,MACjB,KAAK,YAAY;AAAA,MACjB,KAAK,YAAY;AACf,eAAO;AAAA,UACL,SAAS;AAAA,YACP,OAAO;AAAA,YACP,SAAS,MAAM;AApW3B;AAsWc,oBAAM,iBAAiB,sBAAsBA,OAAM,OAAO;AAC1D,oBAAM,qBAAqB,KAAAA,OAAM,eAAN,mBAA0B;AACrD,oBAAM,MACJ,kBACA,qBACA;AACF,qBAAO,KAAK,KAAK,QAAQ;AAAA,YAC3B;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,MAAM,YAAY,SAAS;AAAA,MACrC,SAAS,MAAM;AAAA,MACf;AAAA,MACA,SAAS,gBAAgB,KAAK;AAAA;AAAA,EAChC;AAEJ;","names":["cleanMessage","error"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCopilotContext
3
- } from "./chunk-6KGEF242.mjs";
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-LZDDYZEY.mjs.map
37
+ //# sourceMappingURL=chunk-5BSUSFHM.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useCopilotContext
3
- } from "./chunk-6KGEF242.mjs";
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-C6F6EQNA.mjs.map
24
+ //# sourceMappingURL=chunk-BVK7PLK6.mjs.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  useCopilotChat
3
- } from "./chunk-4I7PLQF7.mjs";
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-CCESTGAM.mjs";
9
+ } from "./chunk-3OQM3NEK.mjs";
10
+ import {
11
+ useCopilotRuntimeClient
12
+ } from "./chunk-JWAXDYOW.mjs";
13
13
  import {
14
14
  useToast
15
- } from "./chunk-VRXANACV.mjs";
15
+ } from "./chunk-YAF2LATQ.mjs";
16
16
  import {
17
17
  useCopilotContext
18
- } from "./chunk-6KGEF242.mjs";
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-CMKIDDQL.mjs.map
213
+ //# sourceMappingURL=chunk-DDIBJUWK.mjs.map