@copilotkit/react-ui 1.3.7-fix-chat-interactions-rerenders.0 → 1.3.7

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 (92) hide show
  1. package/CHANGELOG.md +5 -5
  2. package/dist/{chunk-CTPEKUNX.mjs → chunk-4FIGRRFS.mjs} +5 -7
  3. package/dist/chunk-4FIGRRFS.mjs.map +1 -0
  4. package/dist/{chunk-FUCEBN2P.mjs → chunk-6VYMULPK.mjs} +4 -4
  5. package/dist/{chunk-LGS6B47Q.mjs → chunk-7YQICPBC.mjs} +8 -8
  6. package/dist/{chunk-RF3KLUPD.mjs → chunk-AAY3WWWC.mjs} +2 -3
  7. package/dist/chunk-AAY3WWWC.mjs.map +1 -0
  8. package/dist/{chunk-HBZPOT37.mjs → chunk-BNCTYKEP.mjs} +2 -2
  9. package/dist/{chunk-GOTHQ665.mjs → chunk-DP5YVGNX.mjs} +2 -3
  10. package/dist/chunk-DP5YVGNX.mjs.map +1 -0
  11. package/dist/{chunk-PJNNEX4L.mjs → chunk-JQOSF44H.mjs} +2 -2
  12. package/dist/{chunk-QI3OM75G.mjs → chunk-RS6UPR5N.mjs} +2 -2
  13. package/dist/{chunk-YH2STM73.mjs → chunk-RWT7WRG2.mjs} +3 -3
  14. package/dist/chunk-RWT7WRG2.mjs.map +1 -0
  15. package/dist/{chunk-5DT3MDBZ.mjs → chunk-S5MBUNGN.mjs} +2 -3
  16. package/dist/{chunk-5DT3MDBZ.mjs.map → chunk-S5MBUNGN.mjs.map} +1 -1
  17. package/dist/{chunk-GDNJRSD4.mjs → chunk-SHTMRY45.mjs} +8 -10
  18. package/dist/chunk-SHTMRY45.mjs.map +1 -0
  19. package/dist/{chunk-CPWFYV3U.mjs → chunk-TYYJR3LE.mjs} +2 -2
  20. package/dist/{chunk-MA5B5ELM.mjs → chunk-WHSD7DBC.mjs} +2 -3
  21. package/dist/chunk-WHSD7DBC.mjs.map +1 -0
  22. package/dist/components/chat/Chat.js +22 -30
  23. package/dist/components/chat/Chat.js.map +1 -1
  24. package/dist/components/chat/Chat.mjs +10 -10
  25. package/dist/components/chat/Input.js +1 -2
  26. package/dist/components/chat/Input.js.map +1 -1
  27. package/dist/components/chat/Input.mjs +2 -2
  28. package/dist/components/chat/Messages.js +6 -6
  29. package/dist/components/chat/Messages.js.map +1 -1
  30. package/dist/components/chat/Messages.mjs +1 -1
  31. package/dist/components/chat/Modal.js +22 -30
  32. package/dist/components/chat/Modal.js.map +1 -1
  33. package/dist/components/chat/Modal.mjs +11 -11
  34. package/dist/components/chat/Popup.js +22 -30
  35. package/dist/components/chat/Popup.js.map +1 -1
  36. package/dist/components/chat/Popup.mjs +12 -12
  37. package/dist/components/chat/Sidebar.js +22 -30
  38. package/dist/components/chat/Sidebar.js.map +1 -1
  39. package/dist/components/chat/Sidebar.mjs +12 -12
  40. package/dist/components/chat/index.js +22 -30
  41. package/dist/components/chat/index.js.map +1 -1
  42. package/dist/components/chat/index.mjs +13 -13
  43. package/dist/components/chat/messages/RenderActionExecutionMessage.js +1 -1
  44. package/dist/components/chat/messages/RenderActionExecutionMessage.js.map +1 -1
  45. package/dist/components/chat/messages/RenderActionExecutionMessage.mjs +1 -1
  46. package/dist/components/chat/messages/RenderAgentStateMessage.js +1 -2
  47. package/dist/components/chat/messages/RenderAgentStateMessage.js.map +1 -1
  48. package/dist/components/chat/messages/RenderAgentStateMessage.mjs +1 -1
  49. package/dist/components/chat/messages/RenderResultMessage.js +1 -2
  50. package/dist/components/chat/messages/RenderResultMessage.js.map +1 -1
  51. package/dist/components/chat/messages/RenderResultMessage.mjs +1 -1
  52. package/dist/components/chat/messages/RenderTextMessage.js +1 -2
  53. package/dist/components/chat/messages/RenderTextMessage.js.map +1 -1
  54. package/dist/components/chat/messages/RenderTextMessage.mjs +1 -1
  55. package/dist/components/dev-console/console.js +4 -6
  56. package/dist/components/dev-console/console.js.map +1 -1
  57. package/dist/components/dev-console/console.mjs +2 -2
  58. package/dist/components/dev-console/index.js +4 -6
  59. package/dist/components/dev-console/index.js.map +1 -1
  60. package/dist/components/dev-console/index.mjs +2 -2
  61. package/dist/components/dev-console/utils.js +4 -6
  62. package/dist/components/dev-console/utils.js.map +1 -1
  63. package/dist/components/dev-console/utils.mjs +1 -1
  64. package/dist/components/index.js +22 -30
  65. package/dist/components/index.js.map +1 -1
  66. package/dist/components/index.mjs +13 -13
  67. package/dist/hooks/use-push-to-talk.js +1 -2
  68. package/dist/hooks/use-push-to-talk.js.map +1 -1
  69. package/dist/hooks/use-push-to-talk.mjs +1 -1
  70. package/dist/index.js +22 -30
  71. package/dist/index.js.map +1 -1
  72. package/dist/index.mjs +13 -13
  73. package/package.json +8 -8
  74. package/src/components/chat/Messages.tsx +6 -6
  75. package/src/components/chat/messages/RenderActionExecutionMessage.tsx +1 -1
  76. package/src/components/chat/messages/RenderAgentStateMessage.tsx +1 -1
  77. package/src/components/chat/messages/RenderResultMessage.tsx +1 -1
  78. package/src/components/chat/messages/RenderTextMessage.tsx +1 -1
  79. package/src/components/dev-console/utils.ts +4 -4
  80. package/src/hooks/use-push-to-talk.tsx +1 -1
  81. package/dist/chunk-CTPEKUNX.mjs.map +0 -1
  82. package/dist/chunk-GDNJRSD4.mjs.map +0 -1
  83. package/dist/chunk-GOTHQ665.mjs.map +0 -1
  84. package/dist/chunk-MA5B5ELM.mjs.map +0 -1
  85. package/dist/chunk-RF3KLUPD.mjs.map +0 -1
  86. package/dist/chunk-YH2STM73.mjs.map +0 -1
  87. /package/dist/{chunk-FUCEBN2P.mjs.map → chunk-6VYMULPK.mjs.map} +0 -0
  88. /package/dist/{chunk-LGS6B47Q.mjs.map → chunk-7YQICPBC.mjs.map} +0 -0
  89. /package/dist/{chunk-HBZPOT37.mjs.map → chunk-BNCTYKEP.mjs.map} +0 -0
  90. /package/dist/{chunk-PJNNEX4L.mjs.map → chunk-JQOSF44H.mjs.map} +0 -0
  91. /package/dist/{chunk-QI3OM75G.mjs.map → chunk-RS6UPR5N.mjs.map} +0 -0
  92. /package/dist/{chunk-CPWFYV3U.mjs.map → chunk-TYYJR3LE.mjs.map} +0 -0
@@ -2,31 +2,31 @@ import "../chunk-JD7BAH7U.mjs";
2
2
  import "../chunk-MRFF7GSQ.mjs";
3
3
  import {
4
4
  CopilotSidebar
5
- } from "../chunk-CPWFYV3U.mjs";
5
+ } from "../chunk-TYYJR3LE.mjs";
6
6
  import "../chunk-WB3YULQ4.mjs";
7
7
  import {
8
8
  CopilotPopup
9
- } from "../chunk-PJNNEX4L.mjs";
10
- import "../chunk-FUCEBN2P.mjs";
9
+ } from "../chunk-JQOSF44H.mjs";
10
+ import "../chunk-6VYMULPK.mjs";
11
11
  import "../chunk-FO7Z5LAL.mjs";
12
12
  import "../chunk-FLV3J3VX.mjs";
13
13
  import "../chunk-YOH25I6N.mjs";
14
14
  import {
15
15
  CopilotChat
16
- } from "../chunk-LGS6B47Q.mjs";
16
+ } from "../chunk-7YQICPBC.mjs";
17
17
  import "../chunk-V7W6IM2V.mjs";
18
- import "../chunk-YH2STM73.mjs";
19
- import "../chunk-RF3KLUPD.mjs";
20
- import "../chunk-GOTHQ665.mjs";
21
- import "../chunk-MA5B5ELM.mjs";
18
+ import "../chunk-RWT7WRG2.mjs";
19
+ import "../chunk-AAY3WWWC.mjs";
20
+ import "../chunk-DP5YVGNX.mjs";
21
+ import "../chunk-WHSD7DBC.mjs";
22
22
  import "../chunk-KFQYJ5R5.mjs";
23
- import "../chunk-QI3OM75G.mjs";
24
- import "../chunk-CTPEKUNX.mjs";
23
+ import "../chunk-RS6UPR5N.mjs";
24
+ import "../chunk-4FIGRRFS.mjs";
25
25
  import "../chunk-OTPAZXVR.mjs";
26
- import "../chunk-HBZPOT37.mjs";
26
+ import "../chunk-BNCTYKEP.mjs";
27
27
  import "../chunk-YQFVRDNC.mjs";
28
28
  import "../chunk-YQ3D5IQV.mjs";
29
- import "../chunk-GDNJRSD4.mjs";
29
+ import "../chunk-SHTMRY45.mjs";
30
30
  import "../chunk-XSUSSWDS.mjs";
31
31
  import {
32
32
  useChatContext
@@ -34,7 +34,7 @@ import {
34
34
  import "../chunk-UPTB2MVO.mjs";
35
35
  import "../chunk-FZC7X5PK.mjs";
36
36
  import "../chunk-54JAUBUJ.mjs";
37
- import "../chunk-5DT3MDBZ.mjs";
37
+ import "../chunk-S5MBUNGN.mjs";
38
38
  import "../chunk-MRXNTQOX.mjs";
39
39
  export {
40
40
  CopilotChat,
@@ -60,7 +60,6 @@ __export(use_push_to_talk_exports, {
60
60
  });
61
61
  module.exports = __toCommonJS(use_push_to_talk_exports);
62
62
  var import_react_core = require("@copilotkit/react-core");
63
- var import_runtime_client_gql = require("@copilotkit/runtime-client-gql");
64
63
  var import_react = require("react");
65
64
  var checkMicrophonePermission = () => __async(void 0, null, function* () {
66
65
  try {
@@ -178,7 +177,7 @@ var usePushToTalk = ({
178
177
  (message) => message.id === startReadingFromMessageId
179
178
  );
180
179
  const messagesAfterLast = context.messages.slice(lastMessageIndex + 1).filter(
181
- (message) => message instanceof import_runtime_client_gql.TextMessage && message.role === "assistant"
180
+ (message) => message.isTextMessage() && message.role === "assistant"
182
181
  );
183
182
  const text = messagesAfterLast.map((message) => message.content).join("\n");
184
183
  playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl, audioContextRef.current);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-push-to-talk.tsx"],"sourcesContent":["import { useCopilotContext, useCopilotMessagesContext } from \"@copilotkit/react-core\";\nimport { Message, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nexport const checkMicrophonePermission = async () => {\n try {\n const permissionStatus = await navigator.permissions.query({\n name: \"microphone\" as PermissionName,\n });\n if (permissionStatus.state === \"granted\") {\n return true;\n } else {\n return false;\n }\n } catch (err) {\n console.error(\"Error checking microphone permission\", err);\n }\n};\n\nexport const requestMicAndPlaybackPermission = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const audioContext = new window.AudioContext();\n await audioContext.resume();\n return { stream, audioContext };\n } catch (err) {\n console.error(\"Error requesting microphone and playback permissions\", err);\n return null;\n }\n};\n\nconst startRecording = async (\n mediaStreamRef: MutableRefObject<MediaStream | null>,\n mediaRecorderRef: MutableRefObject<MediaRecorder | null>,\n audioContextRef: MutableRefObject<AudioContext | null>,\n recordedChunks: Blob[],\n onStop: () => void,\n) => {\n if (!mediaStreamRef.current || !audioContextRef.current) {\n mediaStreamRef.current = await navigator.mediaDevices.getUserMedia({ audio: true });\n audioContextRef.current = new window.AudioContext();\n await audioContextRef.current.resume();\n }\n\n mediaRecorderRef.current = new MediaRecorder(mediaStreamRef.current!);\n mediaRecorderRef.current.start(1000);\n mediaRecorderRef.current.ondataavailable = (event) => {\n recordedChunks.push(event.data);\n };\n mediaRecorderRef.current.onstop = onStop;\n};\n\nconst stopRecording = (mediaRecorderRef: MutableRefObject<MediaRecorder | null>) => {\n if (mediaRecorderRef.current && mediaRecorderRef.current.state !== \"inactive\") {\n mediaRecorderRef.current.stop();\n }\n};\n\nconst transcribeAudio = async (recordedChunks: Blob[], transcribeAudioUrl: string) => {\n const completeBlob = new Blob(recordedChunks, { type: \"audio/mp4\" });\n const formData = new FormData();\n formData.append(\"file\", completeBlob, \"recording.mp4\");\n\n const response = await fetch(transcribeAudioUrl, {\n method: \"POST\",\n body: formData,\n });\n\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n\n const transcription = await response.json();\n return transcription.text;\n};\n\nconst playAudioResponse = (text: string, textToSpeechUrl: string, audioContext: AudioContext) => {\n const encodedText = encodeURIComponent(text);\n const url = `${textToSpeechUrl}?text=${encodedText}`;\n\n fetch(url)\n .then((response) => response.arrayBuffer())\n .then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer))\n .then((audioBuffer) => {\n const source = audioContext.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(audioContext.destination);\n source.start(0);\n })\n .catch((error) => {\n console.error(\"Error with decoding audio data\", error);\n });\n};\n\nexport type PushToTalkState = \"idle\" | \"recording\" | \"transcribing\";\n\nexport type SendFunction = (text: string) => Promise<Message>;\n\nexport const usePushToTalk = ({\n sendFunction,\n inProgress,\n}: {\n sendFunction: SendFunction;\n inProgress: boolean;\n}) => {\n const [pushToTalkState, setPushToTalkState] = useState<PushToTalkState>(\"idle\");\n const mediaStreamRef = useRef<MediaStream | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const recordedChunks = useRef<Blob[]>([]);\n const generalContext = useCopilotContext();\n const messagesContext = useCopilotMessagesContext();\n const context = { ...generalContext, ...messagesContext };\n const [startReadingFromMessageId, setStartReadingFromMessageId] = useState<string | null>(null);\n\n useEffect(() => {\n if (pushToTalkState === \"recording\") {\n startRecording(\n mediaStreamRef,\n mediaRecorderRef,\n audioContextRef,\n recordedChunks.current,\n () => {\n setPushToTalkState(\"transcribing\");\n },\n );\n } else {\n stopRecording(mediaRecorderRef);\n if (pushToTalkState === \"transcribing\") {\n transcribeAudio(recordedChunks.current, context.copilotApiConfig.transcribeAudioUrl!).then(\n async (transcription) => {\n recordedChunks.current = [];\n setPushToTalkState(\"idle\");\n const message = await sendFunction(transcription);\n setStartReadingFromMessageId(message.id);\n },\n );\n }\n }\n\n return () => {\n stopRecording(mediaRecorderRef);\n };\n }, [pushToTalkState]);\n\n useEffect(() => {\n if (inProgress === false && startReadingFromMessageId) {\n const lastMessageIndex = context.messages.findIndex(\n (message) => message.id === startReadingFromMessageId,\n );\n\n const messagesAfterLast = context.messages\n .slice(lastMessageIndex + 1)\n .filter(\n (message) => message instanceof TextMessage && message.role === \"assistant\",\n ) as TextMessage[];\n\n const text = messagesAfterLast.map((message) => message.content).join(\"\\n\");\n playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl!, audioContextRef.current!);\n\n setStartReadingFromMessageId(null);\n }\n }, [startReadingFromMessageId, inProgress]);\n\n return { pushToTalkState, setPushToTalkState };\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/hooks/use-push-to-talk.tsx"],"sourcesContent":["import { useCopilotContext, useCopilotMessagesContext } from \"@copilotkit/react-core\";\nimport { Message, TextMessage } from \"@copilotkit/runtime-client-gql\";\nimport { MutableRefObject, useEffect, useRef, useState } from \"react\";\n\nexport const checkMicrophonePermission = async () => {\n try {\n const permissionStatus = await navigator.permissions.query({\n name: \"microphone\" as PermissionName,\n });\n if (permissionStatus.state === \"granted\") {\n return true;\n } else {\n return false;\n }\n } catch (err) {\n console.error(\"Error checking microphone permission\", err);\n }\n};\n\nexport const requestMicAndPlaybackPermission = async () => {\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n const audioContext = new window.AudioContext();\n await audioContext.resume();\n return { stream, audioContext };\n } catch (err) {\n console.error(\"Error requesting microphone and playback permissions\", err);\n return null;\n }\n};\n\nconst startRecording = async (\n mediaStreamRef: MutableRefObject<MediaStream | null>,\n mediaRecorderRef: MutableRefObject<MediaRecorder | null>,\n audioContextRef: MutableRefObject<AudioContext | null>,\n recordedChunks: Blob[],\n onStop: () => void,\n) => {\n if (!mediaStreamRef.current || !audioContextRef.current) {\n mediaStreamRef.current = await navigator.mediaDevices.getUserMedia({ audio: true });\n audioContextRef.current = new window.AudioContext();\n await audioContextRef.current.resume();\n }\n\n mediaRecorderRef.current = new MediaRecorder(mediaStreamRef.current!);\n mediaRecorderRef.current.start(1000);\n mediaRecorderRef.current.ondataavailable = (event) => {\n recordedChunks.push(event.data);\n };\n mediaRecorderRef.current.onstop = onStop;\n};\n\nconst stopRecording = (mediaRecorderRef: MutableRefObject<MediaRecorder | null>) => {\n if (mediaRecorderRef.current && mediaRecorderRef.current.state !== \"inactive\") {\n mediaRecorderRef.current.stop();\n }\n};\n\nconst transcribeAudio = async (recordedChunks: Blob[], transcribeAudioUrl: string) => {\n const completeBlob = new Blob(recordedChunks, { type: \"audio/mp4\" });\n const formData = new FormData();\n formData.append(\"file\", completeBlob, \"recording.mp4\");\n\n const response = await fetch(transcribeAudioUrl, {\n method: \"POST\",\n body: formData,\n });\n\n if (!response.ok) {\n throw new Error(`Error: ${response.statusText}`);\n }\n\n const transcription = await response.json();\n return transcription.text;\n};\n\nconst playAudioResponse = (text: string, textToSpeechUrl: string, audioContext: AudioContext) => {\n const encodedText = encodeURIComponent(text);\n const url = `${textToSpeechUrl}?text=${encodedText}`;\n\n fetch(url)\n .then((response) => response.arrayBuffer())\n .then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer))\n .then((audioBuffer) => {\n const source = audioContext.createBufferSource();\n source.buffer = audioBuffer;\n source.connect(audioContext.destination);\n source.start(0);\n })\n .catch((error) => {\n console.error(\"Error with decoding audio data\", error);\n });\n};\n\nexport type PushToTalkState = \"idle\" | \"recording\" | \"transcribing\";\n\nexport type SendFunction = (text: string) => Promise<Message>;\n\nexport const usePushToTalk = ({\n sendFunction,\n inProgress,\n}: {\n sendFunction: SendFunction;\n inProgress: boolean;\n}) => {\n const [pushToTalkState, setPushToTalkState] = useState<PushToTalkState>(\"idle\");\n const mediaStreamRef = useRef<MediaStream | null>(null);\n const audioContextRef = useRef<AudioContext | null>(null);\n const mediaRecorderRef = useRef<MediaRecorder | null>(null);\n const recordedChunks = useRef<Blob[]>([]);\n const generalContext = useCopilotContext();\n const messagesContext = useCopilotMessagesContext();\n const context = { ...generalContext, ...messagesContext };\n const [startReadingFromMessageId, setStartReadingFromMessageId] = useState<string | null>(null);\n\n useEffect(() => {\n if (pushToTalkState === \"recording\") {\n startRecording(\n mediaStreamRef,\n mediaRecorderRef,\n audioContextRef,\n recordedChunks.current,\n () => {\n setPushToTalkState(\"transcribing\");\n },\n );\n } else {\n stopRecording(mediaRecorderRef);\n if (pushToTalkState === \"transcribing\") {\n transcribeAudio(recordedChunks.current, context.copilotApiConfig.transcribeAudioUrl!).then(\n async (transcription) => {\n recordedChunks.current = [];\n setPushToTalkState(\"idle\");\n const message = await sendFunction(transcription);\n setStartReadingFromMessageId(message.id);\n },\n );\n }\n }\n\n return () => {\n stopRecording(mediaRecorderRef);\n };\n }, [pushToTalkState]);\n\n useEffect(() => {\n if (inProgress === false && startReadingFromMessageId) {\n const lastMessageIndex = context.messages.findIndex(\n (message) => message.id === startReadingFromMessageId,\n );\n\n const messagesAfterLast = context.messages\n .slice(lastMessageIndex + 1)\n .filter(\n (message) => message.isTextMessage() && message.role === \"assistant\",\n ) as TextMessage[];\n\n const text = messagesAfterLast.map((message) => message.content).join(\"\\n\");\n playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl!, audioContextRef.current!);\n\n setStartReadingFromMessageId(null);\n }\n }, [startReadingFromMessageId, inProgress]);\n\n return { pushToTalkState, setPushToTalkState };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA6D;AAE7D,mBAA8D;AAEvD,IAAM,4BAA4B,MAAY;AACnD,MAAI;AACF,UAAM,mBAAmB,MAAM,UAAU,YAAY,MAAM;AAAA,MACzD,MAAM;AAAA,IACR,CAAC;AACD,QAAI,iBAAiB,UAAU,WAAW;AACxC,aAAO;AAAA,IACT,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF,SAAS,KAAP;AACA,YAAQ,MAAM,wCAAwC,GAAG;AAAA,EAC3D;AACF;AAEO,IAAM,kCAAkC,MAAY;AACzD,MAAI;AACF,UAAM,SAAS,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;AACxE,UAAM,eAAe,IAAI,OAAO,aAAa;AAC7C,UAAM,aAAa,OAAO;AAC1B,WAAO,EAAE,QAAQ,aAAa;AAAA,EAChC,SAAS,KAAP;AACA,YAAQ,MAAM,wDAAwD,GAAG;AACzE,WAAO;AAAA,EACT;AACF;AAEA,IAAM,iBAAiB,CACrB,gBACA,kBACA,iBACA,gBACA,WACG;AACH,MAAI,CAAC,eAAe,WAAW,CAAC,gBAAgB,SAAS;AACvD,mBAAe,UAAU,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;AAClF,oBAAgB,UAAU,IAAI,OAAO,aAAa;AAClD,UAAM,gBAAgB,QAAQ,OAAO;AAAA,EACvC;AAEA,mBAAiB,UAAU,IAAI,cAAc,eAAe,OAAQ;AACpE,mBAAiB,QAAQ,MAAM,GAAI;AACnC,mBAAiB,QAAQ,kBAAkB,CAAC,UAAU;AACpD,mBAAe,KAAK,MAAM,IAAI;AAAA,EAChC;AACA,mBAAiB,QAAQ,SAAS;AACpC;AAEA,IAAM,gBAAgB,CAAC,qBAA6D;AAClF,MAAI,iBAAiB,WAAW,iBAAiB,QAAQ,UAAU,YAAY;AAC7E,qBAAiB,QAAQ,KAAK;AAAA,EAChC;AACF;AAEA,IAAM,kBAAkB,CAAO,gBAAwB,uBAA+B;AACpF,QAAM,eAAe,IAAI,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnE,QAAM,WAAW,IAAI,SAAS;AAC9B,WAAS,OAAO,QAAQ,cAAc,eAAe;AAErD,QAAM,WAAW,MAAM,MAAM,oBAAoB;AAAA,IAC/C,QAAQ;AAAA,IACR,MAAM;AAAA,EACR,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,UAAU,SAAS,YAAY;AAAA,EACjD;AAEA,QAAM,gBAAgB,MAAM,SAAS,KAAK;AAC1C,SAAO,cAAc;AACvB;AAEA,IAAM,oBAAoB,CAAC,MAAc,iBAAyB,iBAA+B;AAC/F,QAAM,cAAc,mBAAmB,IAAI;AAC3C,QAAM,MAAM,GAAG,wBAAwB;AAEvC,QAAM,GAAG,EACN,KAAK,CAAC,aAAa,SAAS,YAAY,CAAC,EACzC,KAAK,CAAC,gBAAgB,aAAa,gBAAgB,WAAW,CAAC,EAC/D,KAAK,CAAC,gBAAgB;AACrB,UAAM,SAAS,aAAa,mBAAmB;AAC/C,WAAO,SAAS;AAChB,WAAO,QAAQ,aAAa,WAAW;AACvC,WAAO,MAAM,CAAC;AAAA,EAChB,CAAC,EACA,MAAM,CAAC,UAAU;AAChB,YAAQ,MAAM,kCAAkC,KAAK;AAAA,EACvD,CAAC;AACL;AAMO,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA;AACF,MAGM;AACJ,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,uBAA0B,MAAM;AAC9E,QAAM,qBAAiB,qBAA2B,IAAI;AACtD,QAAM,sBAAkB,qBAA4B,IAAI;AACxD,QAAM,uBAAmB,qBAA6B,IAAI;AAC1D,QAAM,qBAAiB,qBAAe,CAAC,CAAC;AACxC,QAAM,qBAAiB,qCAAkB;AACzC,QAAM,sBAAkB,6CAA0B;AAClD,QAAM,UAAU,kCAAK,iBAAmB;AACxC,QAAM,CAAC,2BAA2B,4BAA4B,QAAI,uBAAwB,IAAI;AAE9F,8BAAU,MAAM;AACd,QAAI,oBAAoB,aAAa;AACnC;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAe;AAAA,QACf,MAAM;AACJ,6BAAmB,cAAc;AAAA,QACnC;AAAA,MACF;AAAA,IACF,OAAO;AACL,oBAAc,gBAAgB;AAC9B,UAAI,oBAAoB,gBAAgB;AACtC,wBAAgB,eAAe,SAAS,QAAQ,iBAAiB,kBAAmB,EAAE;AAAA,UACpF,CAAO,kBAAkB;AACvB,2BAAe,UAAU,CAAC;AAC1B,+BAAmB,MAAM;AACzB,kBAAM,UAAU,MAAM,aAAa,aAAa;AAChD,yCAA6B,QAAQ,EAAE;AAAA,UACzC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM;AACX,oBAAc,gBAAgB;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,eAAe,CAAC;AAEpB,8BAAU,MAAM;AACd,QAAI,eAAe,SAAS,2BAA2B;AACrD,YAAM,mBAAmB,QAAQ,SAAS;AAAA,QACxC,CAAC,YAAY,QAAQ,OAAO;AAAA,MAC9B;AAEA,YAAM,oBAAoB,QAAQ,SAC/B,MAAM,mBAAmB,CAAC,EAC1B;AAAA,QACC,CAAC,YAAY,QAAQ,cAAc,KAAK,QAAQ,SAAS;AAAA,MAC3D;AAEF,YAAM,OAAO,kBAAkB,IAAI,CAAC,YAAY,QAAQ,OAAO,EAAE,KAAK,IAAI;AAC1E,wBAAkB,MAAM,QAAQ,iBAAiB,iBAAkB,gBAAgB,OAAQ;AAE3F,mCAA6B,IAAI;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,2BAA2B,UAAU,CAAC;AAE1C,SAAO,EAAE,iBAAiB,mBAAmB;AAC/C;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  checkMicrophonePermission,
3
3
  requestMicAndPlaybackPermission,
4
4
  usePushToTalk
5
- } from "../chunk-5DT3MDBZ.mjs";
5
+ } from "../chunk-S5MBUNGN.mjs";
6
6
  import "../chunk-MRXNTQOX.mjs";
7
7
  export {
8
8
  checkMicrophonePermission,
package/dist/index.js CHANGED
@@ -540,10 +540,10 @@ var Messages = ({
540
540
  messages = [...initialMessages, ...messages];
541
541
  const actionResults = {};
542
542
  for (let i = 0; i < messages.length; i++) {
543
- if (messages[i] instanceof import_runtime_client_gql.ActionExecutionMessage) {
543
+ if (messages[i].isActionExecutionMessage()) {
544
544
  const id = messages[i].id;
545
545
  const resultMessage = messages.find(
546
- (message) => message instanceof import_runtime_client_gql.ResultMessage && message.actionExecutionId === id
546
+ (message) => message.isResultMessage() && message.actionExecutionId === id
547
547
  );
548
548
  if (resultMessage) {
549
549
  actionResults[id] = import_runtime_client_gql.ResultMessage.decodeResult(resultMessage.result || "");
@@ -564,7 +564,7 @@ var Messages = ({
564
564
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "copilotKitMessages", children: [
565
565
  messages.map((message, index) => {
566
566
  const isCurrentMessage = index === messages.length - 1;
567
- if (message instanceof import_runtime_client_gql.TextMessage) {
567
+ if (message.isTextMessage()) {
568
568
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
569
569
  RenderTextMessage2,
570
570
  {
@@ -575,7 +575,7 @@ var Messages = ({
575
575
  },
576
576
  index
577
577
  );
578
- } else if (message instanceof import_runtime_client_gql.ActionExecutionMessage) {
578
+ } else if (message.isActionExecutionMessage()) {
579
579
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
580
580
  RenderActionExecutionMessage2,
581
581
  {
@@ -587,7 +587,7 @@ var Messages = ({
587
587
  },
588
588
  index
589
589
  );
590
- } else if (message instanceof import_runtime_client_gql.AgentStateMessage) {
590
+ } else if (message.isAgentStateMessage()) {
591
591
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
592
592
  RenderAgentStateMessage2,
593
593
  {
@@ -598,7 +598,7 @@ var Messages = ({
598
598
  },
599
599
  index
600
600
  );
601
- } else if (message instanceof import_runtime_client_gql.ResultMessage) {
601
+ } else if (message.isResultMessage()) {
602
602
  return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
603
603
  RenderResultMessage2,
604
604
  {
@@ -685,7 +685,6 @@ var Textarea_default = AutoResizingTextarea;
685
685
 
686
686
  // src/hooks/use-push-to-talk.tsx
687
687
  var import_react_core = require("@copilotkit/react-core");
688
- var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
689
688
  var import_react5 = require("react");
690
689
  var startRecording = (mediaStreamRef, mediaRecorderRef, audioContextRef, recordedChunks, onStop) => __async(void 0, null, function* () {
691
690
  if (!mediaStreamRef.current || !audioContextRef.current) {
@@ -778,7 +777,7 @@ var usePushToTalk = ({
778
777
  (message) => message.id === startReadingFromMessageId
779
778
  );
780
779
  const messagesAfterLast = context.messages.slice(lastMessageIndex + 1).filter(
781
- (message) => message instanceof import_runtime_client_gql2.TextMessage && message.role === "assistant"
780
+ (message) => message.isTextMessage() && message.role === "assistant"
782
781
  );
783
782
  const text = messagesAfterLast.map((message) => message.content).join("\n");
784
783
  playAudioResponse(text, context.copilotApiConfig.textToSpeechUrl, audioContextRef.current);
@@ -866,9 +865,6 @@ var ResponseButton = ({ onClick, inProgress }) => {
866
865
  ] });
867
866
  };
868
867
 
869
- // src/components/chat/messages/RenderTextMessage.tsx
870
- var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
871
-
872
868
  // src/components/chat/Markdown.tsx
873
869
  var import_react8 = require("react");
874
870
  var import_react_markdown = __toESM(require("react-markdown"));
@@ -1342,7 +1338,7 @@ var import_jsx_runtime12 = require("react/jsx-runtime");
1342
1338
  function RenderTextMessage(props) {
1343
1339
  const { message, inProgress, index, isCurrentMessage } = props;
1344
1340
  const { icons } = useChatContext();
1345
- if (message instanceof import_runtime_client_gql3.TextMessage) {
1341
+ if (message.isTextMessage()) {
1346
1342
  if (message.role === "user") {
1347
1343
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "copilotKitMessage copilotKitUserMessage", children: message.content }, index);
1348
1344
  } else if (message.role == "assistant") {
@@ -1352,14 +1348,14 @@ function RenderTextMessage(props) {
1352
1348
  }
1353
1349
 
1354
1350
  // src/components/chat/messages/RenderActionExecutionMessage.tsx
1355
- var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1351
+ var import_runtime_client_gql2 = require("@copilotkit/runtime-client-gql");
1356
1352
  var import_react_core3 = require("@copilotkit/react-core");
1357
1353
  var import_jsx_runtime13 = require("react/jsx-runtime");
1358
1354
  function RenderActionExecutionMessage(props) {
1359
1355
  const { message, inProgress, index, isCurrentMessage, actionResult } = props;
1360
1356
  const { chatComponentsCache } = (0, import_react_core3.useCopilotContext)();
1361
1357
  const { icons } = useChatContext();
1362
- if (message instanceof import_runtime_client_gql4.ActionExecutionMessage) {
1358
+ if (message.isActionExecutionMessage()) {
1363
1359
  if (chatComponentsCache.current !== null && chatComponentsCache.current.actions[message.name]) {
1364
1360
  const render = chatComponentsCache.current.actions[message.name];
1365
1361
  if (typeof render === "string") {
@@ -1377,7 +1373,7 @@ function RenderActionExecutionMessage(props) {
1377
1373
  let status = "inProgress";
1378
1374
  if (actionResult !== void 0) {
1379
1375
  status = "complete";
1380
- } else if (message.status.code !== import_runtime_client_gql4.MessageStatusCode.Pending) {
1376
+ } else if (message.status.code !== import_runtime_client_gql2.MessageStatusCode.Pending) {
1381
1377
  status = "executing";
1382
1378
  }
1383
1379
  try {
@@ -1420,25 +1416,23 @@ function RenderActionExecutionMessage(props) {
1420
1416
  }
1421
1417
 
1422
1418
  // src/components/chat/messages/RenderResultMessage.tsx
1423
- var import_runtime_client_gql5 = require("@copilotkit/runtime-client-gql");
1424
1419
  var import_jsx_runtime14 = require("react/jsx-runtime");
1425
1420
  function RenderResultMessage(props) {
1426
1421
  const { message, inProgress, index, isCurrentMessage } = props;
1427
1422
  const { icons } = useChatContext();
1428
- if (message instanceof import_runtime_client_gql5.ResultMessage && inProgress && isCurrentMessage) {
1423
+ if (message.isResultMessage() && inProgress && isCurrentMessage) {
1429
1424
  return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `copilotKitMessage copilotKitAssistantMessage`, children: icons.spinnerIcon }, index);
1430
1425
  }
1431
1426
  }
1432
1427
 
1433
1428
  // src/components/chat/messages/RenderAgentStateMessage.tsx
1434
- var import_runtime_client_gql6 = require("@copilotkit/runtime-client-gql");
1435
1429
  var import_react_core4 = require("@copilotkit/react-core");
1436
1430
  var import_jsx_runtime15 = require("react/jsx-runtime");
1437
1431
  function RenderAgentStateMessage(props) {
1438
1432
  const { message, inProgress, index, isCurrentMessage } = props;
1439
1433
  const { chatComponentsCache } = (0, import_react_core4.useCopilotContext)();
1440
1434
  const { icons } = useChatContext();
1441
- if (message instanceof import_runtime_client_gql6.AgentStateMessage) {
1435
+ if (message.isAgentStateMessage()) {
1442
1436
  let render;
1443
1437
  if (chatComponentsCache.current !== null) {
1444
1438
  render = chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-${message.nodeName}`] || chatComponentsCache.current.coAgentStateRenders[`${message.agentName}-global`];
@@ -1491,7 +1485,7 @@ function RenderAgentStateMessage(props) {
1491
1485
  // src/components/chat/Suggestion.tsx
1492
1486
  var import_react_core5 = require("@copilotkit/react-core");
1493
1487
  var import_shared = require("@copilotkit/shared");
1494
- var import_runtime_client_gql7 = require("@copilotkit/runtime-client-gql");
1488
+ var import_runtime_client_gql3 = require("@copilotkit/runtime-client-gql");
1495
1489
  var import_jsx_runtime16 = require("react/jsx-runtime");
1496
1490
  function Suggestion({ title, message, onClick, partial, className }) {
1497
1491
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
@@ -1527,7 +1521,7 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1527
1521
  context,
1528
1522
  instructions: "Suggest what the user could say next. Provide clear, highly relevant suggestions. Do not literally suggest function calls. " + config.instructions + "\n\n" + numOfSuggestionsInstructions,
1529
1523
  data: "Available tools: " + tools + "\n\n",
1530
- requestType: import_runtime_client_gql7.CopilotRequestType.Task,
1524
+ requestType: import_runtime_client_gql3.CopilotRequestType.Task,
1531
1525
  parameters: [
1532
1526
  {
1533
1527
  name: "suggestions",
@@ -1583,13 +1577,11 @@ var reloadSuggestions = (context, chatSuggestionConfiguration, setCurrentSuggest
1583
1577
  // src/components/chat/Chat.tsx
1584
1578
  var import_react11 = __toESM(require("react"));
1585
1579
  var import_react_core8 = require("@copilotkit/react-core");
1586
- var import_runtime_client_gql10 = require("@copilotkit/runtime-client-gql");
1580
+ var import_runtime_client_gql4 = require("@copilotkit/runtime-client-gql");
1587
1581
  var import_shared3 = require("@copilotkit/shared");
1588
1582
 
1589
1583
  // src/components/dev-console/utils.ts
1590
1584
  var import_react_core6 = require("@copilotkit/react-core");
1591
- var import_runtime_client_gql8 = require("@copilotkit/runtime-client-gql");
1592
- var import_runtime_client_gql9 = require("@copilotkit/runtime-client-gql");
1593
1585
  function shouldShowDevConsole(showDevConsole) {
1594
1586
  if (typeof showDevConsole === "boolean") {
1595
1587
  return showDevConsole;
@@ -1679,7 +1671,7 @@ function logMessages(context) {
1679
1671
  return;
1680
1672
  }
1681
1673
  const tableData = context.messages.map((message) => {
1682
- if (message instanceof import_runtime_client_gql8.TextMessage) {
1674
+ if (message.isTextMessage()) {
1683
1675
  return {
1684
1676
  id: message.id,
1685
1677
  type: "TextMessage",
@@ -1688,7 +1680,7 @@ function logMessages(context) {
1688
1680
  scope: void 0,
1689
1681
  content: message.content
1690
1682
  };
1691
- } else if (message instanceof import_runtime_client_gql8.ActionExecutionMessage) {
1683
+ } else if (message.isActionExecutionMessage()) {
1692
1684
  return {
1693
1685
  id: message.id,
1694
1686
  type: "ActionExecutionMessage",
@@ -1697,7 +1689,7 @@ function logMessages(context) {
1697
1689
  scope: message.scope,
1698
1690
  content: message.arguments
1699
1691
  };
1700
- } else if (message instanceof import_runtime_client_gql8.ResultMessage) {
1692
+ } else if (message.isResultMessage()) {
1701
1693
  return {
1702
1694
  id: message.id,
1703
1695
  type: "ResultMessage",
@@ -1706,7 +1698,7 @@ function logMessages(context) {
1706
1698
  scope: message.actionExecutionId,
1707
1699
  content: message.result
1708
1700
  };
1709
- } else if (message instanceof import_runtime_client_gql9.AgentStateMessage) {
1701
+ } else if (message.isAgentStateMessage()) {
1710
1702
  return {
1711
1703
  id: message.id,
1712
1704
  type: `AgentStateMessage (running: ${message.running})`,
@@ -2137,9 +2129,9 @@ var useCopilotChatLogic = (makeSystemMessage, onInProgress, onSubmitMessage) =>
2137
2129
  const sendMessage = (messageContent) => __async(void 0, null, function* () {
2138
2130
  abortSuggestions();
2139
2131
  setCurrentSuggestions([]);
2140
- const message = new import_runtime_client_gql10.TextMessage({
2132
+ const message = new import_runtime_client_gql4.TextMessage({
2141
2133
  content: messageContent,
2142
- role: import_runtime_client_gql10.Role.User
2134
+ role: import_runtime_client_gql4.Role.User
2143
2135
  });
2144
2136
  if (onSubmitMessage) {
2145
2137
  try {