@copilotkit/react-ui 1.3.0 → 1.3.1

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 (203) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/chunk-54JAUBUJ.mjs +26 -0
  3. package/dist/chunk-54JAUBUJ.mjs.map +1 -0
  4. package/dist/chunk-5HHVL5WK.mjs +29 -0
  5. package/dist/chunk-5HHVL5WK.mjs.map +1 -0
  6. package/dist/chunk-B2KQEX2R.mjs +91 -0
  7. package/dist/chunk-B2KQEX2R.mjs.map +1 -0
  8. package/dist/chunk-BJPGMY3I.mjs +70 -0
  9. package/dist/chunk-BJPGMY3I.mjs.map +1 -0
  10. package/dist/chunk-EFZPSZWO.mjs +1 -0
  11. package/dist/chunk-EFZPSZWO.mjs.map +1 -0
  12. package/dist/chunk-FL4ETWFB.mjs +21 -0
  13. package/dist/chunk-FL4ETWFB.mjs.map +1 -0
  14. package/dist/chunk-FLV3J3VX.mjs +18 -0
  15. package/dist/chunk-FLV3J3VX.mjs.map +1 -0
  16. package/dist/chunk-FO7Z5LAL.mjs +118 -0
  17. package/dist/chunk-FO7Z5LAL.mjs.map +1 -0
  18. package/dist/chunk-FOZVHL73.mjs +171 -0
  19. package/dist/chunk-FOZVHL73.mjs.map +1 -0
  20. package/dist/chunk-FZC7X5PK.mjs +262 -0
  21. package/dist/chunk-FZC7X5PK.mjs.map +1 -0
  22. package/dist/chunk-H7TM5JE6.mjs +146 -0
  23. package/dist/chunk-H7TM5JE6.mjs.map +1 -0
  24. package/dist/chunk-HR36Y2FQ.mjs +167 -0
  25. package/dist/chunk-HR36Y2FQ.mjs.map +1 -0
  26. package/dist/chunk-I4QG2ZZU.mjs +220 -0
  27. package/dist/chunk-I4QG2ZZU.mjs.map +1 -0
  28. package/dist/chunk-IU3WTXLQ.mjs +1 -0
  29. package/dist/chunk-IU3WTXLQ.mjs.map +1 -0
  30. package/dist/chunk-JD7BAH7U.mjs +1 -0
  31. package/dist/chunk-JD7BAH7U.mjs.map +1 -0
  32. package/dist/chunk-MRFF7GSQ.mjs +1 -0
  33. package/dist/chunk-MRFF7GSQ.mjs.map +1 -0
  34. package/dist/chunk-MRXNTQOX.mjs +59 -0
  35. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  36. package/dist/chunk-OTPAZXVR.mjs +92 -0
  37. package/dist/chunk-OTPAZXVR.mjs.map +1 -0
  38. package/dist/chunk-QOEAEMUQ.mjs +30 -0
  39. package/dist/chunk-QOEAEMUQ.mjs.map +1 -0
  40. package/dist/chunk-T26KLXLH.mjs +1 -0
  41. package/dist/chunk-T26KLXLH.mjs.map +1 -0
  42. package/dist/chunk-U6J5DGOE.mjs +83 -0
  43. package/dist/chunk-U6J5DGOE.mjs.map +1 -0
  44. package/dist/chunk-UPTB2MVO.mjs +395 -0
  45. package/dist/chunk-UPTB2MVO.mjs.map +1 -0
  46. package/dist/chunk-V7W6IM2V.mjs +1 -0
  47. package/dist/chunk-V7W6IM2V.mjs.map +1 -0
  48. package/dist/chunk-VOBX4JOA.mjs +138 -0
  49. package/dist/chunk-VOBX4JOA.mjs.map +1 -0
  50. package/dist/chunk-WB3YULQ4.mjs +1 -0
  51. package/dist/chunk-WB3YULQ4.mjs.map +1 -0
  52. package/dist/chunk-WCPLXRZX.mjs +106 -0
  53. package/dist/chunk-WCPLXRZX.mjs.map +1 -0
  54. package/dist/chunk-XSUSSWDS.mjs +18 -0
  55. package/dist/chunk-XSUSSWDS.mjs.map +1 -0
  56. package/dist/chunk-YOH25I6N.mjs +25 -0
  57. package/dist/chunk-YOH25I6N.mjs.map +1 -0
  58. package/dist/chunk-YQ3D5IQV.mjs +75 -0
  59. package/dist/chunk-YQ3D5IQV.mjs.map +1 -0
  60. package/dist/chunk-YQFVRDNC.mjs +53 -0
  61. package/dist/chunk-YQFVRDNC.mjs.map +1 -0
  62. package/dist/components/chat/Button.js.map +1 -1
  63. package/dist/components/chat/Button.mjs +6 -30
  64. package/dist/components/chat/Button.mjs.map +1 -1
  65. package/dist/components/chat/Chat.d.ts +1 -1
  66. package/dist/components/chat/Chat.js +6 -3
  67. package/dist/components/chat/Chat.js.map +1 -1
  68. package/dist/components/chat/Chat.mjs +20 -1851
  69. package/dist/components/chat/Chat.mjs.map +1 -1
  70. package/dist/components/chat/ChatContext.d.ts +1 -1
  71. package/dist/components/chat/ChatContext.mjs +7 -228
  72. package/dist/components/chat/ChatContext.mjs.map +1 -1
  73. package/dist/components/chat/CodeBlock.js +2 -1
  74. package/dist/components/chat/CodeBlock.js.map +1 -1
  75. package/dist/components/chat/CodeBlock.mjs +8 -482
  76. package/dist/components/chat/CodeBlock.mjs.map +1 -1
  77. package/dist/components/chat/Header.mjs +6 -23
  78. package/dist/components/chat/Header.mjs.map +1 -1
  79. package/dist/components/chat/Icons.mjs +16 -271
  80. package/dist/components/chat/Icons.mjs.map +1 -1
  81. package/dist/components/chat/Input.js +4 -2
  82. package/dist/components/chat/Input.js.map +1 -1
  83. package/dist/components/chat/Input.mjs +8 -255
  84. package/dist/components/chat/Input.mjs.map +1 -1
  85. package/dist/components/chat/Markdown.js +2 -1
  86. package/dist/components/chat/Markdown.js.map +1 -1
  87. package/dist/components/chat/Markdown.mjs +7 -546
  88. package/dist/components/chat/Markdown.mjs.map +1 -1
  89. package/dist/components/chat/Messages.js +2 -1
  90. package/dist/components/chat/Messages.js.map +1 -1
  91. package/dist/components/chat/Messages.mjs +8 -723
  92. package/dist/components/chat/Messages.mjs.map +1 -1
  93. package/dist/components/chat/Modal.d.ts +1 -1
  94. package/dist/components/chat/Modal.js +6 -3
  95. package/dist/components/chat/Modal.js.map +1 -1
  96. package/dist/components/chat/Modal.mjs +22 -2052
  97. package/dist/components/chat/Modal.mjs.map +1 -1
  98. package/dist/components/chat/Popup.js +6 -3
  99. package/dist/components/chat/Popup.js.map +1 -1
  100. package/dist/components/chat/Popup.mjs +23 -2061
  101. package/dist/components/chat/Popup.mjs.map +1 -1
  102. package/dist/components/chat/Response.mjs +6 -23
  103. package/dist/components/chat/Response.mjs.map +1 -1
  104. package/dist/components/chat/Sidebar.js +6 -3
  105. package/dist/components/chat/Sidebar.js.map +1 -1
  106. package/dist/components/chat/Sidebar.mjs +23 -2072
  107. package/dist/components/chat/Sidebar.mjs.map +1 -1
  108. package/dist/components/chat/Suggestion.js.map +1 -1
  109. package/dist/components/chat/Suggestion.mjs +5 -152
  110. package/dist/components/chat/Suggestion.mjs.map +1 -1
  111. package/dist/components/chat/Textarea.js.map +1 -1
  112. package/dist/components/chat/Textarea.mjs +4 -48
  113. package/dist/components/chat/Textarea.mjs.map +1 -1
  114. package/dist/components/chat/Window.js.map +1 -1
  115. package/dist/components/chat/Window.mjs +6 -125
  116. package/dist/components/chat/Window.mjs.map +1 -1
  117. package/dist/components/chat/index.js +6 -3
  118. package/dist/components/chat/index.js.map +1 -1
  119. package/dist/components/chat/index.mjs +31 -2078
  120. package/dist/components/chat/index.mjs.map +1 -1
  121. package/dist/components/chat/props.d.ts +1 -1
  122. package/dist/components/chat/props.mjs +1 -0
  123. package/dist/components/dev-console/console.js.map +1 -1
  124. package/dist/components/dev-console/console.mjs +8 -478
  125. package/dist/components/dev-console/console.mjs.map +1 -1
  126. package/dist/components/dev-console/icons.mjs +8 -83
  127. package/dist/components/dev-console/icons.mjs.map +1 -1
  128. package/dist/components/dev-console/index.js.map +1 -1
  129. package/dist/components/dev-console/index.mjs +10 -476
  130. package/dist/components/dev-console/index.mjs.map +1 -1
  131. package/dist/components/dev-console/types.d.ts +1 -1
  132. package/dist/components/dev-console/utils.js.map +1 -1
  133. package/dist/components/dev-console/utils.mjs +8 -154
  134. package/dist/components/dev-console/utils.mjs.map +1 -1
  135. package/dist/components/index.js +6 -3
  136. package/dist/components/index.js.map +1 -1
  137. package/dist/components/index.mjs +32 -2078
  138. package/dist/components/index.mjs.map +1 -1
  139. package/dist/context/index.d.ts +1 -1
  140. package/dist/context/index.mjs +1 -0
  141. package/dist/hooks/index.mjs +5 -24
  142. package/dist/hooks/index.mjs.map +1 -1
  143. package/dist/hooks/use-copilot-chat-suggestions.mjs +4 -24
  144. package/dist/hooks/use-copilot-chat-suggestions.mjs.map +1 -1
  145. package/dist/hooks/use-copy-to-clipboard.d.ts +1 -1
  146. package/dist/hooks/use-copy-to-clipboard.mjs +4 -21
  147. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -1
  148. package/dist/hooks/use-push-to-talk.d.ts +1 -1
  149. package/dist/hooks/use-push-to-talk.js.map +1 -1
  150. package/dist/hooks/use-push-to-talk.mjs +6 -148
  151. package/dist/hooks/use-push-to-talk.mjs.map +1 -1
  152. package/dist/index.css +747 -1
  153. package/dist/index.css.map +1 -0
  154. package/dist/index.js +6 -10
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.mjs +38 -2110
  157. package/dist/index.mjs.map +1 -1
  158. package/dist/lib/utils.mjs +3 -20
  159. package/dist/lib/utils.mjs.map +1 -1
  160. package/dist/lib/utils.test.d.ts +1 -1
  161. package/dist/types/css.d.ts +1 -1
  162. package/dist/types/index.mjs +1 -0
  163. package/dist/types/suggestions.d.ts +1 -1
  164. package/package.json +11 -19
  165. package/src/components/chat/Chat.tsx +4 -1
  166. package/src/components/chat/Popup.tsx +4 -1
  167. package/src/components/chat/Sidebar.tsx +3 -1
  168. package/tsup.config.ts +15 -59
  169. package/dist/components/chat/Button.d.mts +0 -7
  170. package/dist/components/chat/Chat.d.mts +0 -87
  171. package/dist/components/chat/ChatContext.d.mts +0 -105
  172. package/dist/components/chat/CodeBlock.d.mts +0 -14
  173. package/dist/components/chat/Header.d.mts +0 -7
  174. package/dist/components/chat/Icons.d.mts +0 -18
  175. package/dist/components/chat/Input.d.mts +0 -7
  176. package/dist/components/chat/Markdown.d.mts +0 -8
  177. package/dist/components/chat/Messages.d.mts +0 -7
  178. package/dist/components/chat/Modal.d.mts +0 -51
  179. package/dist/components/chat/Popup.d.mts +0 -13
  180. package/dist/components/chat/Response.d.mts +0 -7
  181. package/dist/components/chat/Sidebar.d.mts +0 -13
  182. package/dist/components/chat/Suggestion.d.mts +0 -14
  183. package/dist/components/chat/Textarea.d.mts +0 -13
  184. package/dist/components/chat/Window.d.mts +0 -7
  185. package/dist/components/chat/index.d.mts +0 -11
  186. package/dist/components/chat/props.d.mts +0 -35
  187. package/dist/components/dev-console/console.d.mts +0 -10
  188. package/dist/components/dev-console/icons.d.mts +0 -9
  189. package/dist/components/dev-console/index.d.mts +0 -5
  190. package/dist/components/dev-console/types.d.mts +0 -9
  191. package/dist/components/dev-console/utils.d.mts +0 -10
  192. package/dist/components/index.d.mts +0 -11
  193. package/dist/context/index.d.mts +0 -2
  194. package/dist/hooks/index.d.mts +0 -1
  195. package/dist/hooks/use-copilot-chat-suggestions.d.mts +0 -83
  196. package/dist/hooks/use-copy-to-clipboard.d.mts +0 -9
  197. package/dist/hooks/use-push-to-talk.d.mts +0 -19
  198. package/dist/index.d.mts +0 -13
  199. package/dist/lib/utils.d.mts +0 -4
  200. package/dist/lib/utils.test.d.mts +0 -2
  201. package/dist/types/css.d.mts +0 -16
  202. package/dist/types/index.d.mts +0 -2
  203. package/dist/types/suggestions.d.mts +0 -8
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat/Messages.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { MessagesProps } from \"./props\";\nimport { useChatContext } from \"./ChatContext\";\nimport { Markdown } from \"./Markdown\";\nimport { RenderFunctionStatus, useCopilotContext } from \"@copilotkit/react-core\";\nimport {\n MessageStatusCode,\n ActionExecutionMessage,\n Message,\n ResultMessage,\n TextMessage,\n Role,\n AgentStateMessage,\n} from \"@copilotkit/runtime-client-gql\";\nimport { CoagentInChatRenderFunction } from \"@copilotkit/react-core/dist/context/copilot-context\";\n\nexport const Messages = ({ messages, inProgress, children }: MessagesProps) => {\n const { chatComponentsCache } = useCopilotContext();\n\n const context = useChatContext();\n const initialMessages = useMemo(\n () => makeInitialMessages(context.labels.initial),\n [context.labels.initial],\n );\n messages = [...initialMessages, ...messages];\n\n const functionResults: Record<string, string> = {};\n\n for (let i = 0; i < messages.length; i++) {\n if (messages[i] instanceof ActionExecutionMessage) {\n const id = messages[i].id;\n const resultMessage: ResultMessage | undefined = messages.find(\n (message) => message instanceof ResultMessage && message.actionExecutionId === id,\n ) as ResultMessage | undefined;\n\n if (resultMessage) {\n functionResults[id] = ResultMessage.decodeResult(resultMessage.result || \"\");\n }\n }\n }\n\n const messagesEndRef = React.useRef<HTMLDivElement>(null);\n\n const scrollToBottom = () => {\n if (messagesEndRef.current) {\n messagesEndRef.current.scrollIntoView({\n behavior: \"auto\",\n });\n }\n };\n\n useEffect(() => {\n scrollToBottom();\n }, [messages]);\n\n return (\n <div className=\"copilotKitMessages\">\n {messages.map((message, index) => {\n const isCurrentMessage = index === messages.length - 1;\n\n if (message instanceof TextMessage && message.role === \"user\") {\n return (\n <div key={index} className=\"copilotKitMessage copilotKitUserMessage\">\n {message.content}\n </div>\n );\n } else if (message instanceof TextMessage && message.role == \"assistant\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && !message.content ? (\n context.icons.spinnerIcon\n ) : (\n <Markdown content={message.content} />\n )}\n </div>\n );\n } else if (message instanceof ActionExecutionMessage) {\n if (\n chatComponentsCache.current !== null &&\n chatComponentsCache.current.actions[message.name]\n ) {\n const render = chatComponentsCache.current.actions[message.name];\n // render a static string\n if (typeof render === \"string\") {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n );\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null;\n }\n }\n // render is a function\n else {\n const args = message.arguments;\n\n let status: RenderFunctionStatus = \"inProgress\";\n\n if (functionResults[message.id] !== undefined) {\n status = \"complete\";\n } else if (message.status.code !== MessageStatusCode.Pending) {\n status = \"executing\";\n }\n\n const toRender = render({\n status: status as any,\n args,\n result: functionResults[message.id],\n });\n\n // No result and complete: stay silent\n if (!toRender && status === \"complete\") {\n return null;\n }\n\n if (typeof toRender === \"string\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n );\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n );\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null;\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n } else if (message instanceof AgentStateMessage) {\n let render: string | CoagentInChatRenderFunction | undefined;\n\n if (chatComponentsCache.current !== null) {\n render =\n chatComponentsCache.current.coagentActions[\n `${message.agentName}-${message.nodeName}`\n ] || chatComponentsCache.current.coagentActions[`${message.agentName}-global`];\n }\n\n if (render) {\n // render a static string\n if (typeof render === \"string\") {\n // when render is static, we show it only when in progress\n if (isCurrentMessage && inProgress) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon} <span className=\"inProgressLabel\">{render}</span>\n </div>\n );\n }\n // Done - silent by default to avoid a series of \"done\" messages\n else {\n return null;\n }\n }\n // render is a function\n else {\n const state = message.state;\n\n let status = message.active ? \"inProgress\" : \"complete\";\n\n const toRender = render({\n status: status as any,\n state,\n nodeName: message.nodeName,\n });\n\n // No result and complete: stay silent\n if (!toRender && status === \"complete\") {\n return null;\n }\n\n if (typeof toRender === \"string\") {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {isCurrentMessage && inProgress && context.icons.spinnerIcon} {toRender}\n </div>\n );\n } else {\n return (\n <div key={index} className=\"copilotKitCustomAssistantMessage\">\n {toRender}\n </div>\n );\n }\n }\n }\n // No render function found- show the default message\n else if (!inProgress || !isCurrentMessage) {\n // Done - silent by default to avoid a series of \"done\" messages\n return null;\n } else {\n // In progress\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n } else if (message instanceof ResultMessage && inProgress && isCurrentMessage) {\n return (\n <div key={index} className={`copilotKitMessage copilotKitAssistantMessage`}>\n {context.icons.spinnerIcon}\n </div>\n );\n }\n })}\n <footer ref={messagesEndRef}>{children}</footer>\n </div>\n );\n};\n\nfunction makeInitialMessages(initial?: string | string[]): Message[] {\n let initialArray: string[] = [];\n if (initial) {\n if (Array.isArray(initial)) {\n initialArray.push(...initial);\n } else {\n initialArray.push(initial);\n }\n }\n\n return initialArray.map(\n (message) =>\n new TextMessage({\n role: Role.Assistant,\n content: message,\n }),\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,262 @@
1
+ import {
2
+ __objRest,
3
+ __spreadProps,
4
+ __spreadValues
5
+ } from "./chunk-MRXNTQOX.mjs";
6
+
7
+ // src/components/chat/Icons.tsx
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ var OpenIcon = /* @__PURE__ */ jsx(
10
+ "svg",
11
+ {
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ viewBox: "0 0 24 24",
14
+ fill: "currentColor",
15
+ width: "24",
16
+ height: "24",
17
+ children: /* @__PURE__ */ jsx("g", { transform: "translate(24, 0) scale(-1, 1)", children: /* @__PURE__ */ jsx(
18
+ "path",
19
+ {
20
+ fillRule: "evenodd",
21
+ d: "M5.337 21.718a6.707 6.707 0 01-.533-.074.75.75 0 01-.44-1.223 3.73 3.73 0 00.814-1.686c.023-.115-.022-.317-.254-.543C3.274 16.587 2.25 14.41 2.25 12c0-5.03 4.428-9 9.75-9s9.75 3.97 9.75 9c0 5.03-4.428 9-9.75 9-.833 0-1.643-.097-2.417-.279a6.721 6.721 0 01-4.246.997z",
22
+ clipRule: "evenodd"
23
+ }
24
+ ) })
25
+ }
26
+ );
27
+ var CloseIcon = /* @__PURE__ */ jsx(
28
+ "svg",
29
+ {
30
+ xmlns: "http://www.w3.org/2000/svg",
31
+ fill: "none",
32
+ viewBox: "0 0 24 24",
33
+ strokeWidth: "1.5",
34
+ stroke: "currentColor",
35
+ width: "24",
36
+ height: "24",
37
+ children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.5 8.25l-7.5 7.5-7.5-7.5" })
38
+ }
39
+ );
40
+ var HeaderCloseIcon = /* @__PURE__ */ jsx(
41
+ "svg",
42
+ {
43
+ xmlns: "http://www.w3.org/2000/svg",
44
+ fill: "none",
45
+ viewBox: "0 0 24 24",
46
+ strokeWidth: "1.5",
47
+ stroke: "currentColor",
48
+ width: "24",
49
+ height: "24",
50
+ children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
51
+ }
52
+ );
53
+ var SendIcon = /* @__PURE__ */ jsx(
54
+ "svg",
55
+ {
56
+ xmlns: "http://www.w3.org/2000/svg",
57
+ fill: "none",
58
+ viewBox: "0 0 24 24",
59
+ strokeWidth: 1.5,
60
+ stroke: "currentColor",
61
+ width: "24",
62
+ height: "24",
63
+ children: /* @__PURE__ */ jsx(
64
+ "path",
65
+ {
66
+ strokeLinecap: "round",
67
+ strokeLinejoin: "round",
68
+ d: "M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5"
69
+ }
70
+ )
71
+ }
72
+ );
73
+ var SpinnerIcon = /* @__PURE__ */ jsxs(
74
+ "svg",
75
+ {
76
+ style: {
77
+ animation: "copilotKitSpinAnimation 1s linear infinite",
78
+ color: "rgb(107 114 128)"
79
+ },
80
+ width: "24",
81
+ height: "24",
82
+ xmlns: "http://www.w3.org/2000/svg",
83
+ fill: "none",
84
+ viewBox: "0 0 24 24",
85
+ children: [
86
+ /* @__PURE__ */ jsx(
87
+ "circle",
88
+ {
89
+ style: { opacity: 0.25 },
90
+ cx: "12",
91
+ cy: "12",
92
+ r: "10",
93
+ stroke: "currentColor",
94
+ strokeWidth: "4"
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx(
98
+ "path",
99
+ {
100
+ style: { opacity: 0.75 },
101
+ fill: "currentColor",
102
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ );
108
+ var SmallSpinnerIcon = /* @__PURE__ */ jsxs(
109
+ "svg",
110
+ {
111
+ style: {
112
+ animation: "copilotKitSpinAnimation 1s linear infinite"
113
+ },
114
+ width: "13",
115
+ height: "13",
116
+ xmlns: "http://www.w3.org/2000/svg",
117
+ fill: "none",
118
+ viewBox: "0 0 24 24",
119
+ children: [
120
+ /* @__PURE__ */ jsx(
121
+ "circle",
122
+ {
123
+ style: { opacity: 0.25 },
124
+ cx: "12",
125
+ cy: "12",
126
+ r: "10",
127
+ stroke: "currentColor",
128
+ strokeWidth: "4"
129
+ }
130
+ ),
131
+ /* @__PURE__ */ jsx(
132
+ "path",
133
+ {
134
+ style: { opacity: 0.75 },
135
+ fill: "currentColor",
136
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
137
+ }
138
+ )
139
+ ]
140
+ }
141
+ );
142
+ var ActivityIcon = /* @__PURE__ */ jsxs(
143
+ "svg",
144
+ {
145
+ style: {
146
+ display: "inline-block",
147
+ marginLeft: "0.25rem",
148
+ marginRight: "0.25rem"
149
+ },
150
+ height: "24",
151
+ width: "24",
152
+ viewBox: "0 0 27 27",
153
+ xmlns: "http://www.w3.org/2000/svg",
154
+ fill: "currentColor",
155
+ children: [
156
+ /* @__PURE__ */ jsx("circle", { className: "copilotKitActivityDot1", cx: "4", cy: "12", r: "3" }),
157
+ /* @__PURE__ */ jsx("circle", { className: "copilotKitActivityDot1 copilotKitActivityDot2", cx: "12", cy: "12", r: "3" }),
158
+ /* @__PURE__ */ jsx("circle", { className: "copilotKitActivityDot1 copilotKitActivityDot3", cx: "20", cy: "12", r: "3" })
159
+ ]
160
+ }
161
+ );
162
+ function CheckIcon(_a) {
163
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
164
+ return /* @__PURE__ */ jsx(
165
+ "svg",
166
+ __spreadProps(__spreadValues({
167
+ xmlns: "http://www.w3.org/2000/svg",
168
+ viewBox: "0 0 256 256",
169
+ fill: "currentColor",
170
+ style: { height: "1rem", width: "1rem" },
171
+ className
172
+ }, props), {
173
+ children: /* @__PURE__ */ jsx("path", { d: "m229.66 77.66-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z" })
174
+ })
175
+ );
176
+ }
177
+ function DownloadIcon(_a) {
178
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
179
+ return /* @__PURE__ */ jsx(
180
+ "svg",
181
+ __spreadProps(__spreadValues({
182
+ xmlns: "http://www.w3.org/2000/svg",
183
+ viewBox: "0 0 256 256",
184
+ fill: "currentColor",
185
+ style: { height: "1rem", width: "1rem" },
186
+ className
187
+ }, props), {
188
+ children: /* @__PURE__ */ jsx("path", { d: "M224 152v56a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-56a8 8 0 0 1 16 0v56h160v-56a8 8 0 0 1 16 0Zm-101.66 5.66a8 8 0 0 0 11.32 0l40-40a8 8 0 0 0-11.32-11.32L136 132.69V40a8 8 0 0 0-16 0v92.69l-26.34-26.35a8 8 0 0 0-11.32 11.32Z" })
189
+ })
190
+ );
191
+ }
192
+ function CopyIcon(_a) {
193
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
194
+ return /* @__PURE__ */ jsx(
195
+ "svg",
196
+ __spreadProps(__spreadValues({
197
+ xmlns: "http://www.w3.org/2000/svg",
198
+ viewBox: "0 0 256 256",
199
+ fill: "currentColor",
200
+ style: { height: "1rem", width: "1rem" },
201
+ className
202
+ }, props), {
203
+ children: /* @__PURE__ */ jsx("path", { d: "M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8Zm-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z" })
204
+ })
205
+ );
206
+ }
207
+ var StopIcon = /* @__PURE__ */ jsx(
208
+ "svg",
209
+ {
210
+ xmlns: "http://www.w3.org/2000/svg",
211
+ viewBox: "0 0 256 256",
212
+ fill: "currentColor",
213
+ style: { height: "1rem", width: "1rem" },
214
+ children: /* @__PURE__ */ jsx("path", { d: "M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm0 192a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88Zm24-120h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8Zm-8 48h-32v-32h32Z" })
215
+ }
216
+ );
217
+ var RegenerateIcon = /* @__PURE__ */ jsx(
218
+ "svg",
219
+ {
220
+ xmlns: "http://www.w3.org/2000/svg",
221
+ viewBox: "0 0 256 256",
222
+ fill: "currentColor",
223
+ style: { height: "1rem", width: "1rem" },
224
+ children: /* @__PURE__ */ jsx("path", { d: "M197.67 186.37a8 8 0 0 1 0 11.29C196.58 198.73 170.82 224 128 224c-37.39 0-64.53-22.4-80-39.85V208a8 8 0 0 1-16 0v-48a8 8 0 0 1 8-8h48a8 8 0 0 1 0 16H55.44C67.76 183.35 93 208 128 208c36 0 58.14-21.46 58.36-21.68a8 8 0 0 1 11.31.05ZM216 40a8 8 0 0 0-8 8v23.85C192.53 54.4 165.39 32 128 32c-42.82 0-68.58 25.27-69.66 26.34a8 8 0 0 0 11.3 11.34C69.86 69.46 92 48 128 48c35 0 60.24 24.65 72.56 40H168a8 8 0 0 0 0 16h48a8 8 0 0 0 8-8V48a8 8 0 0 0-8-8Z" })
225
+ }
226
+ );
227
+ var PushToTalkIcon = /* @__PURE__ */ jsx(
228
+ "svg",
229
+ {
230
+ xmlns: "http://www.w3.org/2000/svg",
231
+ fill: "none",
232
+ viewBox: "0 0 24 24",
233
+ strokeWidth: 1.5,
234
+ stroke: "currentColor",
235
+ className: "w-6 h-6",
236
+ children: /* @__PURE__ */ jsx(
237
+ "path",
238
+ {
239
+ strokeLinecap: "round",
240
+ strokeLinejoin: "round",
241
+ d: "M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z"
242
+ }
243
+ )
244
+ }
245
+ );
246
+
247
+ export {
248
+ OpenIcon,
249
+ CloseIcon,
250
+ HeaderCloseIcon,
251
+ SendIcon,
252
+ SpinnerIcon,
253
+ SmallSpinnerIcon,
254
+ ActivityIcon,
255
+ CheckIcon,
256
+ DownloadIcon,
257
+ CopyIcon,
258
+ StopIcon,
259
+ RegenerateIcon,
260
+ PushToTalkIcon
261
+ };
262
+ //# sourceMappingURL=chunk-FZC7X5PK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/chat/Icons.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const OpenIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n width=\"24\"\n height=\"24\"\n >\n <g transform=\"translate(24, 0) scale(-1, 1)\">\n <path\n fillRule=\"evenodd\"\n d=\"M5.337 21.718a6.707 6.707 0 01-.533-.074.75.75 0 01-.44-1.223 3.73 3.73 0 00.814-1.686c.023-.115-.022-.317-.254-.543C3.274 16.587 2.25 14.41 2.25 12c0-5.03 4.428-9 9.75-9s9.75 3.97 9.75 9c0 5.03-4.428 9-9.75 9-.833 0-1.643-.097-2.417-.279a6.721 6.721 0 01-4.246.997z\"\n clipRule=\"evenodd\"\n />\n </g>\n </svg>\n);\n\nexport const CloseIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n width=\"24\"\n height=\"24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19.5 8.25l-7.5 7.5-7.5-7.5\" />\n </svg>\n);\n\nexport const HeaderCloseIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth=\"1.5\"\n stroke=\"currentColor\"\n width=\"24\"\n height=\"24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n);\n\nexport const SendIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n width=\"24\"\n height=\"24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M6 12L3.269 3.126A59.768 59.768 0 0121.485 12 59.77 59.77 0 013.27 20.876L5.999 12zm0 0h7.5\"\n />\n </svg>\n);\n\nexport const SpinnerIcon = (\n <svg\n style={{\n animation: \"copilotKitSpinAnimation 1s linear infinite\",\n color: \"rgb(107 114 128)\",\n }}\n width=\"24\"\n height=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n style={{ opacity: 0.25 }}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n style={{ opacity: 0.75 }}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n);\n\nexport const SmallSpinnerIcon = (\n <svg\n style={{\n animation: \"copilotKitSpinAnimation 1s linear infinite\",\n }}\n width=\"13\"\n height=\"13\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n style={{ opacity: 0.25 }}\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n style={{ opacity: 0.75 }}\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n);\n\nexport const ActivityIcon = (\n <svg\n style={{\n display: \"inline-block\",\n marginLeft: \"0.25rem\",\n marginRight: \"0.25rem\",\n }}\n height=\"24\"\n width=\"24\"\n viewBox=\"0 0 27 27\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n >\n <circle className=\"copilotKitActivityDot1\" cx=\"4\" cy=\"12\" r=\"3\" />\n <circle className=\"copilotKitActivityDot1 copilotKitActivityDot2\" cx=\"12\" cy=\"12\" r=\"3\" />\n <circle className=\"copilotKitActivityDot1 copilotKitActivityDot3\" cx=\"20\" cy=\"12\" r=\"3\" />\n </svg>\n);\n\nexport function CheckIcon({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style={{ height: \"1rem\", width: \"1rem\" }}\n className={className}\n {...props}\n >\n <path d=\"m229.66 77.66-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z\" />\n </svg>\n );\n}\n\nexport function DownloadIcon({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style={{ height: \"1rem\", width: \"1rem\" }}\n className={className}\n {...props}\n >\n <path d=\"M224 152v56a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-56a8 8 0 0 1 16 0v56h160v-56a8 8 0 0 1 16 0Zm-101.66 5.66a8 8 0 0 0 11.32 0l40-40a8 8 0 0 0-11.32-11.32L136 132.69V40a8 8 0 0 0-16 0v92.69l-26.34-26.35a8 8 0 0 0-11.32 11.32Z\" />\n </svg>\n );\n}\n\nexport function CopyIcon({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style={{ height: \"1rem\", width: \"1rem\" }}\n className={className}\n {...props}\n >\n <path d=\"M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8Zm-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z\" />\n </svg>\n );\n}\n\nexport const StopIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style={{ height: \"1rem\", width: \"1rem\" }}\n >\n <path d=\"M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm0 192a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88Zm24-120h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8Zm-8 48h-32v-32h32Z\" />\n </svg>\n);\n\nexport const RegenerateIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style={{ height: \"1rem\", width: \"1rem\" }}\n >\n <path d=\"M197.67 186.37a8 8 0 0 1 0 11.29C196.58 198.73 170.82 224 128 224c-37.39 0-64.53-22.4-80-39.85V208a8 8 0 0 1-16 0v-48a8 8 0 0 1 8-8h48a8 8 0 0 1 0 16H55.44C67.76 183.35 93 208 128 208c36 0 58.14-21.46 58.36-21.68a8 8 0 0 1 11.31.05ZM216 40a8 8 0 0 0-8 8v23.85C192.53 54.4 165.39 32 128 32c-42.82 0-68.58 25.27-69.66 26.34a8 8 0 0 0 11.3 11.34C69.86 69.46 92 48 128 48c35 0 60.24 24.65 72.56 40H168a8 8 0 0 0 0 16h48a8 8 0 0 0 8-8V48a8 8 0 0 0-8-8Z\" />\n </svg>\n);\n\nexport const PushToTalkIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"currentColor\"\n className=\"w-6 h-6\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M12 18.75a6 6 0 0 0 6-6v-1.5m-6 7.5a6 6 0 0 1-6-6v-1.5m6 7.5v3.75m-3.75 0h7.5M12 15.75a3 3 0 0 1-3-3V4.5a3 3 0 1 1 6 0v8.25a3 3 0 0 1-3 3Z\"\n />\n </svg>\n);\n"],"mappings":"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","names":[]}
@@ -0,0 +1,146 @@
1
+ import {
2
+ __async
3
+ } from "./chunk-MRXNTQOX.mjs";
4
+
5
+ // src/components/dev-console/utils.ts
6
+ import { defaultCopilotContextCategories } from "@copilotkit/react-core";
7
+ import { ActionExecutionMessage, ResultMessage, TextMessage } from "@copilotkit/runtime-client-gql";
8
+ import { AgentStateMessage } from "@copilotkit/runtime-client-gql";
9
+ function shouldShowDevConsole(showDevConsole) {
10
+ if (typeof showDevConsole === "boolean") {
11
+ return showDevConsole;
12
+ }
13
+ return getHostname() === "localhost" || getHostname() === "127.0.0.1" || getHostname() === "0.0.0.0" || getHostname() === "::1";
14
+ }
15
+ function getHostname() {
16
+ if (typeof window !== "undefined" && window.location) {
17
+ return window.location.hostname;
18
+ }
19
+ return "";
20
+ }
21
+ function getPublishedCopilotKitVersion(current, forceCheck = false) {
22
+ return __async(this, null, function* () {
23
+ const LOCAL_STORAGE_KEY = "__copilotkit_version_check__";
24
+ const serializedVersion = localStorage.getItem(LOCAL_STORAGE_KEY);
25
+ if (serializedVersion && !forceCheck) {
26
+ try {
27
+ const parsedVersion = JSON.parse(serializedVersion);
28
+ const oneHour = 60 * 60 * 1e3;
29
+ const now = (/* @__PURE__ */ new Date()).getTime();
30
+ if (parsedVersion.current === current && now - new Date(parsedVersion.lastChecked).getTime() < oneHour) {
31
+ return parsedVersion;
32
+ }
33
+ } catch (error) {
34
+ console.error("Failed to parse CopilotKitVersion from localStorage", error);
35
+ }
36
+ }
37
+ try {
38
+ const response = yield fetch("https://api.cloud.stagingcopilotkit.ai/check-for-updates", {
39
+ method: "POST",
40
+ headers: {
41
+ "Content-Type": "application/json"
42
+ },
43
+ body: JSON.stringify({
44
+ packages: [
45
+ {
46
+ packageName: "@copilotkit/shared",
47
+ packageVersion: current
48
+ }
49
+ ]
50
+ })
51
+ });
52
+ const data = yield response.json();
53
+ const version = {
54
+ current,
55
+ lastChecked: (/* @__PURE__ */ new Date()).getTime(),
56
+ latest: data.packages[0].latestVersion,
57
+ severity: data.packages[0].severity,
58
+ advisory: data.packages[0].advisory || null
59
+ };
60
+ localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(version));
61
+ return version;
62
+ } catch (error) {
63
+ console.error("Failed to check for updates", error);
64
+ throw error;
65
+ }
66
+ });
67
+ }
68
+ function logReadables(context) {
69
+ console.log("%cCurrent Readables:", "font-size: 16px; font-weight: bold;");
70
+ const readables = context.getContextString([], defaultCopilotContextCategories).trim();
71
+ if (readables.length === 0) {
72
+ console.log("No readables found");
73
+ return;
74
+ }
75
+ console.log(readables);
76
+ }
77
+ function logActions(context) {
78
+ console.log("%cCurrent Actions:", "font-size: 16px; font-weight: bold;");
79
+ if (Object.values(context.actions).length === 0) {
80
+ console.log("No actions found");
81
+ return;
82
+ }
83
+ for (const action of Object.values(context.actions)) {
84
+ console.group(action.name);
85
+ console.log("name", action.name);
86
+ console.log("description", action.description);
87
+ console.log("parameters", action.parameters);
88
+ console.groupEnd();
89
+ }
90
+ }
91
+ function logMessages(context) {
92
+ console.log("%cCurrent Messages:", "font-size: 16px; font-weight: bold;");
93
+ if (context.messages.length === 0) {
94
+ console.log("No messages found");
95
+ return;
96
+ }
97
+ const tableData = context.messages.map((message) => {
98
+ if (message instanceof TextMessage) {
99
+ return {
100
+ id: message.id,
101
+ type: "TextMessage",
102
+ role: message.role,
103
+ name: void 0,
104
+ scope: void 0,
105
+ content: message.content
106
+ };
107
+ } else if (message instanceof ActionExecutionMessage) {
108
+ return {
109
+ id: message.id,
110
+ type: "ActionExecutionMessage",
111
+ role: void 0,
112
+ name: message.name,
113
+ scope: message.scope,
114
+ content: message.arguments
115
+ };
116
+ } else if (message instanceof ResultMessage) {
117
+ return {
118
+ id: message.id,
119
+ type: "ResultMessage",
120
+ role: void 0,
121
+ name: message.actionName,
122
+ scope: message.actionExecutionId,
123
+ content: message.result
124
+ };
125
+ } else if (message instanceof AgentStateMessage) {
126
+ return {
127
+ id: message.id,
128
+ type: `AgentStateMessage (running: ${message.running})`,
129
+ role: message.role,
130
+ name: void 0,
131
+ scope: message.threadId,
132
+ content: message.state
133
+ };
134
+ }
135
+ });
136
+ console.table(tableData);
137
+ }
138
+
139
+ export {
140
+ shouldShowDevConsole,
141
+ getPublishedCopilotKitVersion,
142
+ logReadables,
143
+ logActions,
144
+ logMessages
145
+ };
146
+ //# sourceMappingURL=chunk-H7TM5JE6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/dev-console/utils.ts"],"sourcesContent":["import { CopilotContextParams, defaultCopilotContextCategories } from \"@copilotkit/react-core\";\nimport { CopilotKitVersion } from \"./types\";\nimport { ActionExecutionMessage, ResultMessage, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { AgentStateMessage } from \"@copilotkit/runtime-client-gql\";\n\nexport function shouldShowDevConsole(showDevConsole: boolean | \"auto\"): boolean {\n if (typeof showDevConsole === \"boolean\") {\n return showDevConsole;\n }\n return (\n getHostname() === \"localhost\" ||\n getHostname() === \"127.0.0.1\" ||\n getHostname() === \"0.0.0.0\" ||\n getHostname() === \"::1\"\n );\n}\n\nfunction getHostname(): string {\n if (typeof window !== \"undefined\" && window.location) {\n return window.location.hostname;\n }\n return \"\";\n}\n\nexport async function getPublishedCopilotKitVersion(\n current: string,\n forceCheck: boolean = false,\n): Promise<CopilotKitVersion> {\n const LOCAL_STORAGE_KEY = \"__copilotkit_version_check__\";\n const serializedVersion = localStorage.getItem(LOCAL_STORAGE_KEY);\n if (serializedVersion && !forceCheck) {\n try {\n const parsedVersion: CopilotKitVersion = JSON.parse(serializedVersion);\n const oneHour = 60 * 60 * 1000;\n const now = new Date().getTime();\n\n if (\n parsedVersion.current === current &&\n now - new Date(parsedVersion.lastChecked).getTime() < oneHour\n ) {\n return parsedVersion;\n }\n } catch (error) {\n console.error(\"Failed to parse CopilotKitVersion from localStorage\", error);\n }\n }\n\n try {\n const response = await fetch(\"https://api.cloud.stagingcopilotkit.ai/check-for-updates\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n packages: [\n {\n packageName: \"@copilotkit/shared\",\n packageVersion: current,\n },\n ],\n }),\n });\n\n const data = await response.json();\n\n const version: CopilotKitVersion = {\n current,\n lastChecked: new Date().getTime(),\n latest: data.packages[0].latestVersion,\n severity: data.packages[0].severity,\n advisory: data.packages[0].advisory || null,\n };\n\n localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(version));\n return version;\n } catch (error) {\n console.error(\"Failed to check for updates\", error);\n throw error;\n }\n}\n\nexport function logReadables(context: CopilotContextParams) {\n console.log(\"%cCurrent Readables:\", \"font-size: 16px; font-weight: bold;\");\n\n const readables = context.getContextString([], defaultCopilotContextCategories).trim();\n if (readables.length === 0) {\n console.log(\"No readables found\");\n return;\n }\n console.log(readables);\n}\n\nexport function logActions(context: CopilotContextParams) {\n console.log(\"%cCurrent Actions:\", \"font-size: 16px; font-weight: bold;\");\n\n if (Object.values(context.actions).length === 0) {\n console.log(\"No actions found\");\n return;\n }\n for (const action of Object.values(context.actions)) {\n console.group(action.name);\n console.log(\"name\", action.name);\n console.log(\"description\", action.description);\n console.log(\"parameters\", action.parameters);\n\n console.groupEnd();\n }\n}\n\nexport function logMessages(context: CopilotContextParams) {\n console.log(\"%cCurrent Messages:\", \"font-size: 16px; font-weight: bold;\");\n\n if (context.messages.length === 0) {\n console.log(\"No messages found\");\n return;\n }\n\n const tableData = context.messages.map((message) => {\n if (message instanceof TextMessage) {\n return {\n id: message.id,\n type: \"TextMessage\",\n role: message.role,\n name: undefined,\n scope: undefined,\n content: message.content,\n };\n } else if (message instanceof ActionExecutionMessage) {\n return {\n id: message.id,\n type: \"ActionExecutionMessage\",\n role: undefined,\n name: message.name,\n scope: message.scope,\n content: message.arguments,\n };\n } else if (message instanceof ResultMessage) {\n return {\n id: message.id,\n type: \"ResultMessage\",\n role: undefined,\n name: message.actionName,\n scope: message.actionExecutionId,\n content: message.result,\n };\n } else if (message instanceof AgentStateMessage) {\n return {\n id: message.id,\n type: `AgentStateMessage (running: ${message.running})`,\n role: message.role,\n name: undefined,\n scope: message.threadId,\n content: message.state,\n };\n }\n });\n console.table(tableData);\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,167 @@
1
+ import {
2
+ Suggestion,
3
+ reloadSuggestions
4
+ } from "./chunk-WCPLXRZX.mjs";
5
+ import {
6
+ CopilotDevConsole
7
+ } from "./chunk-I4QG2ZZU.mjs";
8
+ import {
9
+ Input
10
+ } from "./chunk-U6J5DGOE.mjs";
11
+ import {
12
+ Messages
13
+ } from "./chunk-FOZVHL73.mjs";
14
+ import {
15
+ ResponseButton
16
+ } from "./chunk-XSUSSWDS.mjs";
17
+ import {
18
+ ChatContext,
19
+ ChatContextProvider
20
+ } from "./chunk-BJPGMY3I.mjs";
21
+ import {
22
+ __async
23
+ } from "./chunk-MRXNTQOX.mjs";
24
+
25
+ // src/components/chat/Chat.tsx
26
+ import React, { useEffect, useRef, useState } from "react";
27
+ import { useCopilotChat, useCopilotContext } from "@copilotkit/react-core";
28
+ import { Role, TextMessage } from "@copilotkit/runtime-client-gql";
29
+ import { randomId } from "@copilotkit/shared";
30
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
31
+ function CopilotChat({
32
+ instructions,
33
+ onSubmitMessage,
34
+ makeSystemMessage,
35
+ showResponseButton = true,
36
+ onInProgress,
37
+ Messages: Messages2 = Messages,
38
+ Input: Input2 = Input,
39
+ ResponseButton: ResponseButton2 = ResponseButton,
40
+ className,
41
+ icons,
42
+ labels
43
+ }) {
44
+ const context = useCopilotContext();
45
+ useEffect(() => {
46
+ context.setChatInstructions(instructions || "");
47
+ }, [instructions]);
48
+ const {
49
+ visibleMessages,
50
+ isLoading,
51
+ currentSuggestions,
52
+ sendMessage,
53
+ stopGeneration,
54
+ reloadMessages
55
+ } = useCopilotChatLogic(makeSystemMessage, onInProgress, onSubmitMessage);
56
+ const chatContext = React.useContext(ChatContext);
57
+ const isVisible = chatContext ? chatContext.open : true;
58
+ return /* @__PURE__ */ jsxs(WrappedCopilotChat, { icons, labels, className, children: [
59
+ /* @__PURE__ */ jsx(CopilotDevConsole, {}),
60
+ /* @__PURE__ */ jsxs(Messages2, { messages: visibleMessages, inProgress: isLoading, children: [
61
+ currentSuggestions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
62
+ /* @__PURE__ */ jsx("h6", { children: "Suggested:" }),
63
+ /* @__PURE__ */ jsx("div", { className: "suggestions", children: currentSuggestions.map((suggestion, index) => /* @__PURE__ */ jsx(
64
+ Suggestion,
65
+ {
66
+ title: suggestion.title,
67
+ message: suggestion.message,
68
+ partial: suggestion.partial,
69
+ className: suggestion.className,
70
+ onClick: (message) => sendMessage(message)
71
+ },
72
+ index
73
+ )) })
74
+ ] }),
75
+ showResponseButton && visibleMessages.length > 0 && /* @__PURE__ */ jsx(
76
+ ResponseButton2,
77
+ {
78
+ onClick: isLoading ? stopGeneration : reloadMessages,
79
+ inProgress: isLoading
80
+ }
81
+ )
82
+ ] }),
83
+ /* @__PURE__ */ jsx(Input2, { inProgress: isLoading, onSend: sendMessage, isVisible })
84
+ ] });
85
+ }
86
+ function WrappedCopilotChat({
87
+ children,
88
+ icons,
89
+ labels,
90
+ className
91
+ }) {
92
+ const chatContext = React.useContext(ChatContext);
93
+ if (!chatContext) {
94
+ return /* @__PURE__ */ jsx(ChatContextProvider, { icons, labels, open: true, setOpen: () => {
95
+ }, children: /* @__PURE__ */ jsx("div", { className: `copilotKitChat ${className}`, children }) });
96
+ }
97
+ return /* @__PURE__ */ jsx(Fragment, { children });
98
+ }
99
+ var SUGGESTIONS_DEBOUNCE_TIMEOUT = 1e3;
100
+ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) => {
101
+ const { visibleMessages, appendMessage, reloadMessages, stopGeneration, isLoading } = useCopilotChat({
102
+ id: randomId(),
103
+ makeSystemMessage
104
+ });
105
+ const [currentSuggestions, setCurrentSuggestions] = useState([]);
106
+ const suggestionsAbortControllerRef = useRef(null);
107
+ const debounceTimerRef = useRef();
108
+ const abortSuggestions = () => {
109
+ var _a;
110
+ (_a = suggestionsAbortControllerRef.current) == null ? void 0 : _a.abort();
111
+ suggestionsAbortControllerRef.current = null;
112
+ };
113
+ const context = useCopilotContext();
114
+ useEffect(() => {
115
+ onInProgress == null ? void 0 : onInProgress(isLoading);
116
+ abortSuggestions();
117
+ debounceTimerRef.current = setTimeout(
118
+ () => {
119
+ if (!isLoading && Object.keys(context.chatSuggestionConfiguration).length !== 0) {
120
+ suggestionsAbortControllerRef.current = new AbortController();
121
+ reloadSuggestions(
122
+ context,
123
+ context.chatSuggestionConfiguration,
124
+ setCurrentSuggestions,
125
+ suggestionsAbortControllerRef
126
+ );
127
+ }
128
+ },
129
+ currentSuggestions.length == 0 ? 0 : SUGGESTIONS_DEBOUNCE_TIMEOUT
130
+ );
131
+ return () => {
132
+ clearTimeout(debounceTimerRef.current);
133
+ };
134
+ }, [isLoading, context.chatSuggestionConfiguration]);
135
+ const sendMessage = (messageContent) => __async(void 0, null, function* () {
136
+ abortSuggestions();
137
+ setCurrentSuggestions([]);
138
+ const message = new TextMessage({
139
+ content: messageContent,
140
+ role: Role.User
141
+ });
142
+ appendMessage(message);
143
+ if (onSubmitMessage) {
144
+ try {
145
+ yield onSubmitMessage(messageContent);
146
+ } catch (error) {
147
+ console.error("Error in onSubmitMessage:", error);
148
+ }
149
+ }
150
+ return message;
151
+ });
152
+ return {
153
+ visibleMessages,
154
+ isLoading,
155
+ currentSuggestions,
156
+ sendMessage,
157
+ stopGeneration,
158
+ reloadMessages
159
+ };
160
+ };
161
+
162
+ export {
163
+ CopilotChat,
164
+ WrappedCopilotChat,
165
+ useCopilotChatLogic
166
+ };
167
+ //# sourceMappingURL=chunk-HR36Y2FQ.mjs.map