@copilotkit/react-core 0.37.0-mme-remove-css-reset.0 → 0.37.0-mme-fix-textarea-css.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 (100) hide show
  1. package/.turbo/turbo-build.log +155 -155
  2. package/CHANGELOG.md +14 -3
  3. package/dist/{chunk-FHGMPFKO.mjs → chunk-6DKGH7LT.mjs} +2 -2
  4. package/dist/{chunk-TW5FS2QT.mjs → chunk-ANYRLQY3.mjs} +8 -4
  5. package/dist/chunk-ANYRLQY3.mjs.map +1 -0
  6. package/dist/{chunk-JWANHQCM.mjs → chunk-CZK6EOID.mjs} +9 -3
  7. package/dist/chunk-CZK6EOID.mjs.map +1 -0
  8. package/dist/{chunk-B5CULQRZ.mjs → chunk-E2FYNVYX.mjs} +2 -2
  9. package/dist/{chunk-S2YA76YW.mjs → chunk-G6QRG37I.mjs} +42 -24
  10. package/dist/chunk-G6QRG37I.mjs.map +1 -0
  11. package/dist/{chunk-BTJD4QON.mjs → chunk-K3T5WSHP.mjs} +2 -2
  12. package/dist/{chunk-T6UD6AJ2.mjs → chunk-LQGRLQSL.mjs} +2 -2
  13. package/dist/{chunk-GJGYNK46.mjs → chunk-MZ2JGV3C.mjs} +2 -2
  14. package/dist/{chunk-L3LL6N7J.mjs → chunk-R5OF6NLN.mjs} +3 -3
  15. package/dist/{chunk-32T4S22Q.mjs → chunk-UG6IOUHF.mjs} +12 -15
  16. package/dist/chunk-UG6IOUHF.mjs.map +1 -0
  17. package/dist/{chunk-2DKLSG5S.mjs → chunk-WSE45BNB.mjs} +2 -2
  18. package/dist/{chunk-2C4UBKRR.mjs → chunk-X5HCQBME.mjs} +2 -2
  19. package/dist/chunk-X5HCQBME.mjs.map +1 -0
  20. package/dist/components/copilot-provider/copilotkit.js +14 -4
  21. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  22. package/dist/components/copilot-provider/copilotkit.mjs +2 -2
  23. package/dist/components/copilot-provider/index.js +14 -4
  24. package/dist/components/copilot-provider/index.js.map +1 -1
  25. package/dist/components/copilot-provider/index.mjs +2 -2
  26. package/dist/components/index.js +14 -4
  27. package/dist/components/index.js.map +1 -1
  28. package/dist/components/index.mjs +2 -2
  29. package/dist/context/copilot-context.d.ts +6 -2
  30. package/dist/context/copilot-context.js +7 -3
  31. package/dist/context/copilot-context.js.map +1 -1
  32. package/dist/context/copilot-context.mjs +1 -1
  33. package/dist/context/index.js +7 -3
  34. package/dist/context/index.js.map +1 -1
  35. package/dist/context/index.mjs +1 -1
  36. package/dist/hooks/index.d.ts +2 -2
  37. package/dist/hooks/index.js +54 -35
  38. package/dist/hooks/index.js.map +1 -1
  39. package/dist/hooks/index.mjs +9 -9
  40. package/dist/hooks/use-chat.d.ts +12 -6
  41. package/dist/hooks/use-chat.js +10 -13
  42. package/dist/hooks/use-chat.js.map +1 -1
  43. package/dist/hooks/use-chat.mjs +1 -1
  44. package/dist/hooks/use-copilot-action.js +7 -3
  45. package/dist/hooks/use-copilot-action.js.map +1 -1
  46. package/dist/hooks/use-copilot-action.mjs +2 -2
  47. package/dist/hooks/use-copilot-chat.d.ts +37 -15
  48. package/dist/hooks/use-copilot-chat.js +54 -35
  49. package/dist/hooks/use-copilot-chat.js.map +1 -1
  50. package/dist/hooks/use-copilot-chat.mjs +4 -4
  51. package/dist/hooks/use-copilot-readable.js +7 -3
  52. package/dist/hooks/use-copilot-readable.js.map +1 -1
  53. package/dist/hooks/use-copilot-readable.mjs +2 -2
  54. package/dist/hooks/use-make-copilot-actionable.js +7 -3
  55. package/dist/hooks/use-make-copilot-actionable.js.map +1 -1
  56. package/dist/hooks/use-make-copilot-actionable.mjs +2 -2
  57. package/dist/hooks/use-make-copilot-document-readable.js +7 -3
  58. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  59. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  60. package/dist/hooks/use-make-copilot-readable.js +7 -3
  61. package/dist/hooks/use-make-copilot-readable.js.map +1 -1
  62. package/dist/hooks/use-make-copilot-readable.mjs +2 -2
  63. package/dist/index.js +61 -36
  64. package/dist/index.js.map +1 -1
  65. package/dist/index.mjs +12 -12
  66. package/dist/lib/copilot-task.js.map +1 -1
  67. package/dist/lib/copilot-task.mjs +3 -3
  68. package/dist/lib/index.js.map +1 -1
  69. package/dist/lib/index.mjs +3 -3
  70. package/dist/openai-assistants/hooks/index.js +7 -3
  71. package/dist/openai-assistants/hooks/index.js.map +1 -1
  72. package/dist/openai-assistants/hooks/index.mjs +3 -3
  73. package/dist/openai-assistants/hooks/use-copilot-chat-v2.js +7 -3
  74. package/dist/openai-assistants/hooks/use-copilot-chat-v2.js.map +1 -1
  75. package/dist/openai-assistants/hooks/use-copilot-chat-v2.mjs +3 -3
  76. package/dist/openai-assistants/index.js +7 -3
  77. package/dist/openai-assistants/index.js.map +1 -1
  78. package/dist/openai-assistants/index.mjs +3 -3
  79. package/dist/utils/extract.js.map +1 -1
  80. package/dist/utils/extract.mjs +3 -3
  81. package/dist/utils/index.js.map +1 -1
  82. package/dist/utils/index.mjs +3 -3
  83. package/package.json +4 -4
  84. package/src/components/copilot-provider/copilotkit.tsx +6 -0
  85. package/src/context/copilot-context.tsx +21 -6
  86. package/src/hooks/use-chat.ts +29 -18
  87. package/src/hooks/use-copilot-action.ts +1 -1
  88. package/src/hooks/use-copilot-chat.ts +111 -23
  89. package/dist/chunk-2C4UBKRR.mjs.map +0 -1
  90. package/dist/chunk-32T4S22Q.mjs.map +0 -1
  91. package/dist/chunk-JWANHQCM.mjs.map +0 -1
  92. package/dist/chunk-S2YA76YW.mjs.map +0 -1
  93. package/dist/chunk-TW5FS2QT.mjs.map +0 -1
  94. /package/dist/{chunk-FHGMPFKO.mjs.map → chunk-6DKGH7LT.mjs.map} +0 -0
  95. /package/dist/{chunk-B5CULQRZ.mjs.map → chunk-E2FYNVYX.mjs.map} +0 -0
  96. /package/dist/{chunk-BTJD4QON.mjs.map → chunk-K3T5WSHP.mjs.map} +0 -0
  97. /package/dist/{chunk-T6UD6AJ2.mjs.map → chunk-LQGRLQSL.mjs.map} +0 -0
  98. /package/dist/{chunk-GJGYNK46.mjs.map → chunk-MZ2JGV3C.mjs.map} +0 -0
  99. /package/dist/{chunk-L3LL6N7J.mjs.map → chunk-R5OF6NLN.mjs.map} +0 -0
  100. /package/dist/{chunk-2DKLSG5S.mjs.map → chunk-WSE45BNB.mjs.map} +0 -0
package/dist/index.js CHANGED
@@ -112,16 +112,20 @@ var emptyCopilotContext = {
112
112
  },
113
113
  removeEntryPoint: () => {
114
114
  },
115
- getChatCompletionFunctionDescriptions: () => returnAndThrowInDebug([]),
116
- getFunctionCallHandler: () => returnAndThrowInDebug(() => __async(void 0, null, function* () {
117
- })),
118
115
  chatComponentsCache: { current: {} },
119
116
  getContextString: (documents, categories) => returnAndThrowInDebug(""),
120
117
  addContext: () => "",
121
118
  removeContext: () => {
122
119
  },
120
+ getChatCompletionFunctionDescriptions: () => returnAndThrowInDebug([]),
121
+ getFunctionCallHandler: () => returnAndThrowInDebug(() => __async(void 0, null, function* () {
122
+ })),
123
123
  messages: [],
124
124
  setMessages: () => returnAndThrowInDebug([]),
125
+ isLoading: false,
126
+ setIsLoading: () => returnAndThrowInDebug(false),
127
+ chatInstructions: "",
128
+ setChatInstructions: () => returnAndThrowInDebug(""),
125
129
  getDocumentsContext: (categories) => returnAndThrowInDebug([]),
126
130
  addDocumentContext: () => returnAndThrowInDebug(""),
127
131
  removeDocumentContext: () => {
@@ -368,6 +372,8 @@ function CopilotKit(_a) {
368
372
  const chatComponentsCache = (0, import_react4.useRef)({});
369
373
  const { addElement, removeElement, printTree } = use_tree_default();
370
374
  const [messages, setMessages] = (0, import_react4.useState)([]);
375
+ const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
376
+ const [chatInstructions, setChatInstructions] = (0, import_react4.useState)("");
371
377
  const {
372
378
  addElement: addDocument,
373
379
  removeElement: removeDocument,
@@ -502,9 +508,13 @@ ${nonDocumentStrings}`;
502
508
  copilotApiConfig,
503
509
  messages,
504
510
  setMessages,
511
+ isLoading,
512
+ setIsLoading,
505
513
  chatSuggestionConfiguration,
506
514
  addChatSuggestionConfiguration,
507
- removeChatSuggestionConfiguration
515
+ removeChatSuggestionConfiguration,
516
+ chatInstructions,
517
+ setChatInstructions
508
518
  },
509
519
  children
510
520
  }
@@ -616,16 +626,14 @@ function fetchAndDecodeChatCompletionAsText(params) {
616
626
  // src/hooks/use-chat.ts
617
627
  var import_untruncate_json = __toESM(require("untruncate-json"));
618
628
  function useChat(options) {
619
- const { messages, setMessages } = options;
620
- const [input, setInput] = (0, import_react5.useState)("");
621
- const [isLoading, setIsLoading] = (0, import_react5.useState)(false);
629
+ const { messages, setMessages, makeSystemMessageCallback } = options;
622
630
  const abortControllerRef = (0, import_react5.useRef)();
623
631
  const threadIdRef = (0, import_react5.useRef)(null);
624
632
  const runIdRef = (0, import_react5.useRef)(null);
625
633
  const publicApiKey = options.copilotConfig.publicApiKey;
626
634
  const headers = __spreadValues(__spreadValues({}, options.headers || {}), publicApiKey ? { [import_shared3.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
627
635
  const runChatCompletion = (messages2) => __async(this, null, function* () {
628
- setIsLoading(true);
636
+ options.setIsLoading(true);
629
637
  const newMessages = [
630
638
  {
631
639
  id: (0, import_nanoid3.nanoid)(),
@@ -644,7 +652,8 @@ function useChat(options) {
644
652
  if (runIdRef.current) {
645
653
  copilotConfigBody.runId = runIdRef.current;
646
654
  }
647
- const messagesWithContext = [...options.initialMessages || [], ...messages2];
655
+ const systemMessage = makeSystemMessageCallback();
656
+ const messagesWithContext = [systemMessage, ...options.initialMessages || [], ...messages2];
648
657
  const response = yield fetchAndDecodeChatCompletion({
649
658
  copilotConfig: __spreadProps(__spreadValues({}, options.copilotConfig), { body: copilotConfigBody }),
650
659
  messages: messagesWithContext,
@@ -668,7 +677,7 @@ function useChat(options) {
668
677
  role: "assistant"
669
678
  }
670
679
  ]);
671
- setIsLoading(false);
680
+ options.setIsLoading(false);
672
681
  throw new Error("Failed to fetch chat completion");
673
682
  }
674
683
  const reader = response.events.getReader();
@@ -756,19 +765,20 @@ function useChat(options) {
756
765
  }
757
766
  }
758
767
  if (feedback) {
768
+ yield new Promise((resolve) => setTimeout(resolve, 10));
759
769
  return yield runChatCompletion([...messages2, ...newMessages]);
760
770
  } else {
761
771
  return newMessages.slice();
762
772
  }
763
773
  } finally {
764
- setIsLoading(false);
774
+ options.setIsLoading(false);
765
775
  }
766
776
  });
767
777
  const runChatCompletionAndHandleFunctionCall = (messages2) => __async(this, null, function* () {
768
778
  yield runChatCompletion(messages2);
769
779
  });
770
780
  const append = (message) => __async(this, null, function* () {
771
- if (isLoading) {
781
+ if (options.isLoading) {
772
782
  return;
773
783
  }
774
784
  const newMessages = [...messages, message];
@@ -776,7 +786,7 @@ function useChat(options) {
776
786
  return runChatCompletionAndHandleFunctionCall(newMessages);
777
787
  });
778
788
  const reload = () => __async(this, null, function* () {
779
- if (isLoading || messages.length === 0) {
789
+ if (options.isLoading || messages.length === 0) {
780
790
  return;
781
791
  }
782
792
  let newMessages = [...messages];
@@ -794,21 +804,16 @@ function useChat(options) {
794
804
  return {
795
805
  append,
796
806
  reload,
797
- stop,
798
- isLoading,
799
- input,
800
- setInput
807
+ stop
801
808
  };
802
809
  }
803
810
 
804
811
  // src/hooks/use-copilot-chat.ts
805
- function useCopilotChat(_a) {
812
+ function useCopilotChat(_a = {}) {
806
813
  var _b = _a, {
807
- makeSystemMessage: makeSystemMessage2,
808
- additionalInstructions
814
+ makeSystemMessage: makeSystemMessage2
809
815
  } = _b, options = __objRest(_b, [
810
- "makeSystemMessage",
811
- "additionalInstructions"
816
+ "makeSystemMessage"
812
817
  ]);
813
818
  const {
814
819
  getContextString,
@@ -816,44 +821,64 @@ function useCopilotChat(_a) {
816
821
  getFunctionCallHandler,
817
822
  copilotApiConfig,
818
823
  messages,
819
- setMessages
824
+ setMessages,
825
+ isLoading,
826
+ setIsLoading,
827
+ chatInstructions
820
828
  } = (0, import_react6.useContext)(CopilotContext);
821
- const systemMessage = (0, import_react6.useMemo)(() => {
829
+ const latestGetContextString = useUpdatedRef(getContextString);
830
+ const deleteMessage = (0, import_react6.useCallback)(
831
+ (messageId) => {
832
+ setMessages((prev) => prev.filter((message) => message.id !== messageId));
833
+ },
834
+ [setMessages]
835
+ );
836
+ const makeSystemMessageCallback = (0, import_react6.useCallback)(() => {
822
837
  const systemMessageMaker = makeSystemMessage2 || defaultSystemMessage;
823
- const contextString = getContextString([], defaultCopilotContextCategories);
838
+ const contextString = latestGetContextString.current([], defaultCopilotContextCategories);
824
839
  return {
825
840
  id: "system",
826
- content: systemMessageMaker(contextString, additionalInstructions),
841
+ content: systemMessageMaker(contextString, chatInstructions),
827
842
  role: "system"
828
843
  };
829
- }, [getContextString, makeSystemMessage2, additionalInstructions]);
844
+ }, [getContextString, makeSystemMessage2, chatInstructions]);
830
845
  const functionDescriptions = (0, import_react6.useMemo)(() => {
831
846
  return getChatCompletionFunctionDescriptions();
832
847
  }, [getChatCompletionFunctionDescriptions]);
833
- const { append, reload, stop, isLoading, input, setInput } = useChat(__spreadProps(__spreadValues({}, options), {
848
+ const { append, reload, stop } = useChat(__spreadProps(__spreadValues({}, options), {
834
849
  copilotConfig: copilotApiConfig,
835
850
  id: options.id,
836
- initialMessages: [systemMessage].concat(options.initialMessages || []),
851
+ initialMessages: options.initialMessages || [],
837
852
  tools: functionDescriptions,
838
853
  onFunctionCall: getFunctionCallHandler(),
839
854
  headers: __spreadValues({}, options.headers),
840
855
  body: __spreadValues({}, options.body),
841
856
  messages,
842
- setMessages
857
+ setMessages,
858
+ makeSystemMessageCallback,
859
+ isLoading,
860
+ setIsLoading
843
861
  }));
844
862
  const visibleMessages = messages.filter(
845
863
  (message) => message.role === "user" || message.role === "assistant" || message.role === "function"
846
864
  );
847
865
  return {
848
866
  visibleMessages,
849
- append,
850
- reload,
851
- stop,
852
- isLoading,
853
- input,
854
- setInput
867
+ appendMessage: append,
868
+ setMessages,
869
+ reloadMessages: reload,
870
+ stopGeneration: stop,
871
+ deleteMessage,
872
+ isLoading
855
873
  };
856
874
  }
875
+ function useUpdatedRef(value) {
876
+ const ref = (0, import_react6.useRef)(value);
877
+ (0, import_react6.useEffect)(() => {
878
+ ref.current = value;
879
+ }, [value]);
880
+ return ref;
881
+ }
857
882
  function defaultSystemMessage(contextString, additionalInstructions) {
858
883
  return `
859
884
  Please act as an efficient, competent, conscientious, and industrious professional assistant.