@copilotkit/react-core 0.17.0-alpha.5 → 0.17.1-alpha.0

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 (120) hide show
  1. package/.turbo/turbo-build.log +80 -80
  2. package/CHANGELOG.md +20 -0
  3. package/dist/chunk-5UGLWBZJ.mjs +3 -0
  4. package/dist/chunk-5UGLWBZJ.mjs.map +1 -0
  5. package/dist/chunk-6A4PCNMZ.mjs +48 -0
  6. package/dist/chunk-6A4PCNMZ.mjs.map +1 -0
  7. package/dist/chunk-6SOQYBNX.mjs +44 -0
  8. package/dist/chunk-6SOQYBNX.mjs.map +1 -0
  9. package/dist/chunk-7GFKOIO7.mjs +3 -0
  10. package/dist/chunk-7GFKOIO7.mjs.map +1 -0
  11. package/dist/chunk-7P4OYNP3.mjs +19 -0
  12. package/dist/chunk-7P4OYNP3.mjs.map +1 -0
  13. package/dist/chunk-BABVSMJR.mjs +3 -0
  14. package/dist/chunk-BABVSMJR.mjs.map +1 -0
  15. package/dist/chunk-EFZPSZWO.mjs +3 -0
  16. package/dist/chunk-EFZPSZWO.mjs.map +1 -0
  17. package/dist/chunk-F2JIAPZQ.mjs +13 -0
  18. package/dist/chunk-F2JIAPZQ.mjs.map +1 -0
  19. package/dist/chunk-FP4EXCGS.mjs +27 -0
  20. package/dist/chunk-FP4EXCGS.mjs.map +1 -0
  21. package/dist/chunk-FRAKUJWH.mjs +3 -0
  22. package/dist/chunk-FRAKUJWH.mjs.map +1 -0
  23. package/dist/chunk-HW5IH6PV.mjs +19 -0
  24. package/dist/chunk-HW5IH6PV.mjs.map +1 -0
  25. package/dist/chunk-JD7BAH7U.mjs +3 -0
  26. package/dist/chunk-JD7BAH7U.mjs.map +1 -0
  27. package/dist/chunk-MRXNTQOX.mjs +55 -0
  28. package/dist/chunk-MRXNTQOX.mjs.map +1 -0
  29. package/dist/chunk-MZ5UN3BY.mjs +28 -0
  30. package/dist/chunk-MZ5UN3BY.mjs.map +1 -0
  31. package/dist/chunk-PUFR5OAI.mjs +3 -0
  32. package/dist/chunk-PUFR5OAI.mjs.map +1 -0
  33. package/dist/chunk-QTET3FBV.mjs +165 -0
  34. package/dist/chunk-QTET3FBV.mjs.map +1 -0
  35. package/dist/chunk-R2WOR4SW.mjs +113 -0
  36. package/dist/chunk-R2WOR4SW.mjs.map +1 -0
  37. package/dist/chunk-R75NEA76.mjs +77 -0
  38. package/dist/chunk-R75NEA76.mjs.map +1 -0
  39. package/dist/chunk-SPCZTZCY.mjs +3 -0
  40. package/dist/chunk-SPCZTZCY.mjs.map +1 -0
  41. package/dist/chunk-TKXPMMND.mjs +177 -0
  42. package/dist/chunk-TKXPMMND.mjs.map +1 -0
  43. package/dist/chunk-TU4DNDO7.mjs +125 -0
  44. package/dist/chunk-TU4DNDO7.mjs.map +1 -0
  45. package/dist/chunk-VK25FIML.mjs +144 -0
  46. package/dist/chunk-VK25FIML.mjs.map +1 -0
  47. package/dist/chunk-VNRDQJXW.mjs +3 -0
  48. package/dist/chunk-VNRDQJXW.mjs.map +1 -0
  49. package/dist/chunk-VUY2K2DI.mjs +135 -0
  50. package/dist/chunk-VUY2K2DI.mjs.map +1 -0
  51. package/dist/chunk-YULKJPY3.mjs +70 -0
  52. package/dist/chunk-YULKJPY3.mjs.map +1 -0
  53. package/dist/components/copilot-provider/copilot-provider-props.mjs +2 -1
  54. package/dist/components/copilot-provider/copilot-provider-props.mjs.map +1 -1
  55. package/dist/components/copilot-provider/copilot-provider.mjs +7 -468
  56. package/dist/components/copilot-provider/copilot-provider.mjs.map +1 -1
  57. package/dist/components/copilot-provider/index.mjs +8 -467
  58. package/dist/components/copilot-provider/index.mjs.map +1 -1
  59. package/dist/components/copilot-provider/standard-copilot-api-config.mjs +3 -12
  60. package/dist/components/copilot-provider/standard-copilot-api-config.mjs.map +1 -1
  61. package/dist/components/index.mjs +9 -467
  62. package/dist/components/index.mjs.map +1 -1
  63. package/dist/context/copilot-context.mjs +3 -70
  64. package/dist/context/copilot-context.mjs.map +1 -1
  65. package/dist/context/index.mjs +4 -69
  66. package/dist/context/index.mjs.map +1 -1
  67. package/dist/hooks/index.mjs +17 -646
  68. package/dist/hooks/index.mjs.map +1 -1
  69. package/dist/hooks/use-chat.mjs +5 -452
  70. package/dist/hooks/use-chat.mjs.map +1 -1
  71. package/dist/hooks/use-copilot-chat.mjs +13 -591
  72. package/dist/hooks/use-copilot-chat.mjs.map +1 -1
  73. package/dist/hooks/use-flat-category-store.mjs +3 -68
  74. package/dist/hooks/use-flat-category-store.mjs.map +1 -1
  75. package/dist/hooks/use-make-copilot-actionable.mjs +4 -95
  76. package/dist/hooks/use-make-copilot-actionable.mjs.map +1 -1
  77. package/dist/hooks/use-make-copilot-document-readable.mjs +4 -87
  78. package/dist/hooks/use-make-copilot-document-readable.mjs.map +1 -1
  79. package/dist/hooks/use-make-copilot-readable.mjs +4 -87
  80. package/dist/hooks/use-make-copilot-readable.mjs.map +1 -1
  81. package/dist/hooks/use-tree.mjs +3 -153
  82. package/dist/hooks/use-tree.mjs.map +1 -1
  83. package/dist/index.mjs +26 -1194
  84. package/dist/index.mjs.map +1 -1
  85. package/dist/openai/chat-completion-client.mjs +4 -353
  86. package/dist/openai/chat-completion-client.mjs.map +1 -1
  87. package/dist/openai/chat-completion-stream.mjs +4 -217
  88. package/dist/openai/chat-completion-stream.mjs.map +1 -1
  89. package/dist/openai/chat-completion-transport.mjs +3 -179
  90. package/dist/openai/chat-completion-transport.mjs.map +1 -1
  91. package/dist/openai/index.mjs +5 -217
  92. package/dist/openai/index.mjs.map +1 -1
  93. package/dist/openai-assistants/hooks/index.mjs +14 -235
  94. package/dist/openai-assistants/hooks/index.mjs.map +1 -1
  95. package/dist/openai-assistants/hooks/use-assistants.mjs +8 -52
  96. package/dist/openai-assistants/hooks/use-assistants.mjs.map +1 -1
  97. package/dist/openai-assistants/hooks/use-copilot-chat-v2.mjs +13 -236
  98. package/dist/openai-assistants/hooks/use-copilot-chat-v2.mjs.map +1 -1
  99. package/dist/openai-assistants/index.mjs +15 -236
  100. package/dist/openai-assistants/index.mjs.map +1 -1
  101. package/dist/openai-assistants/utils/index.mjs +4 -46
  102. package/dist/openai-assistants/utils/index.mjs.map +1 -1
  103. package/dist/openai-assistants/utils/process-message-stream.mjs +3 -46
  104. package/dist/openai-assistants/utils/process-message-stream.mjs.map +1 -1
  105. package/dist/types/annotated-function.mjs +2 -0
  106. package/dist/types/annotated-function.mjs.map +1 -1
  107. package/dist/types/base.mjs +2 -0
  108. package/dist/types/base.mjs.map +1 -1
  109. package/dist/types/document-pointer.mjs +2 -0
  110. package/dist/types/document-pointer.mjs.map +1 -1
  111. package/dist/types/index.mjs +2 -0
  112. package/dist/types/index.mjs.map +1 -1
  113. package/dist/types/message.mjs +2 -0
  114. package/dist/types/message.mjs.map +1 -1
  115. package/dist/utils/utils.mjs +2 -0
  116. package/dist/utils/utils.mjs.map +1 -1
  117. package/dist/utils/utils.test.mjs +1 -0
  118. package/dist/utils/utils.test.mjs.map +1 -1
  119. package/package.json +2 -2
  120. package/src/hooks/use-chat.ts +15 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/openai-assistants/utils/process-message-stream.ts"],"sourcesContent":["export async function processMessageStream(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n processMessage: (message: string) => void | Promise<void>,\n) {\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n if (buffer.length > 0) {\n processMessage(buffer);\n }\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n let endIndex: number;\n while ((endIndex = buffer.indexOf(\"\\n\")) !== -1) {\n processMessage(buffer.substring(0, endIndex).trim());\n buffer = buffer.substring(endIndex + 1); // Remove the processed instruction + delimiter\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAAsB,qBACpB,QACA,gBACA;AAAA;AACA,UAAM,UAAU,IAAI,YAAY;AAChC,QAAI,SAAS;AACb,WAAO,MAAM;AACX,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAE1C,UAAI,MAAM;AACR,YAAI,OAAO,SAAS,GAAG;AACrB,yBAAe,MAAM;AAAA,QACvB;AACA;AAAA,MACF;AAEA,gBAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAEhD,UAAI;AACJ,cAAQ,WAAW,OAAO,QAAQ,IAAI,OAAO,IAAI;AAC/C,uBAAe,OAAO,UAAU,GAAG,QAAQ,EAAE,KAAK,CAAC;AACnD,iBAAS,OAAO,UAAU,WAAW,CAAC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1,47 +1,4 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
-
22
- // src/openai-assistants/utils/process-message-stream.ts
23
- function processMessageStream(reader, processMessage) {
24
- return __async(this, null, function* () {
25
- const decoder = new TextDecoder();
26
- let buffer = "";
27
- while (true) {
28
- const { done, value } = yield reader.read();
29
- if (done) {
30
- if (buffer.length > 0) {
31
- processMessage(buffer);
32
- }
33
- break;
34
- }
35
- buffer += decoder.decode(value, { stream: true });
36
- let endIndex;
37
- while ((endIndex = buffer.indexOf("\n")) !== -1) {
38
- processMessage(buffer.substring(0, endIndex).trim());
39
- buffer = buffer.substring(endIndex + 1);
40
- }
41
- }
42
- });
43
- }
44
- export {
45
- processMessageStream
46
- };
1
+ export { processMessageStream } from '../../chunk-MZ5UN3BY.mjs';
2
+ import '../../chunk-MRXNTQOX.mjs';
3
+ //# sourceMappingURL=out.js.map
47
4
  //# sourceMappingURL=process-message-stream.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/openai-assistants/utils/process-message-stream.ts"],"sourcesContent":["export async function processMessageStream(\n reader: ReadableStreamDefaultReader<Uint8Array>,\n processMessage: (message: string) => void | Promise<void>,\n) {\n const decoder = new TextDecoder();\n let buffer = \"\";\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) {\n if (buffer.length > 0) {\n processMessage(buffer);\n }\n break;\n }\n\n buffer += decoder.decode(value, { stream: true });\n\n let endIndex: number;\n while ((endIndex = buffer.indexOf(\"\\n\")) !== -1) {\n processMessage(buffer.substring(0, endIndex).trim());\n buffer = buffer.substring(endIndex + 1); // Remove the processed instruction + delimiter\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAAsB,qBACpB,QACA,gBACA;AAAA;AACA,UAAM,UAAU,IAAI,YAAY;AAChC,QAAI,SAAS;AACb,WAAO,MAAM;AACX,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAE1C,UAAI,MAAM;AACR,YAAI,OAAO,SAAS,GAAG;AACrB,yBAAe,MAAM;AAAA,QACvB;AACA;AAAA,MACF;AAEA,gBAAU,QAAQ,OAAO,OAAO,EAAE,QAAQ,KAAK,CAAC;AAEhD,UAAI;AACJ,cAAQ,WAAW,OAAO,QAAQ,IAAI,OAAO,IAAI;AAC/C,uBAAe,OAAO,UAAU,GAAG,QAAQ,EAAE,KAAK,CAAC;AACnD,iBAAS,OAAO,UAAU,WAAW,CAAC;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AAAA;","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=annotated-function.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=base.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=document-pointer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+ import '../chunk-EFZPSZWO.mjs';
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=message.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -1 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
1
3
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -4,4 +4,5 @@ describe("emptyTest", () => {
4
4
  expect(true).toBeTruthy();
5
5
  });
6
6
  });
7
+ //# sourceMappingURL=out.js.map
7
8
  //# sourceMappingURL=utils.test.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/utils.test.ts"],"sourcesContent":["import * as utils from \"./utils\";\n\ndescribe(\"emptyTest\", () => {\n it(\"should be truthy\", () => {\n expect(true).toBeTruthy();\n });\n});\n"],"mappings":";AAEA,SAAS,aAAa,MAAM;AAC1B,KAAG,oBAAoB,MAAM;AAC3B,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AACH,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/utils.test.ts"],"names":[],"mappings":";AAEA,SAAS,aAAa,MAAM;AAC1B,KAAG,oBAAoB,MAAM;AAC3B,WAAO,IAAI,EAAE,WAAW;AAAA,EAC1B,CAAC;AACH,CAAC","sourcesContent":["import * as utils from \"./utils\";\n\ndescribe(\"emptyTest\", () => {\n it(\"should be truthy\", () => {\n expect(true).toBeTruthy();\n });\n});\n"]}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.17.0-alpha.5",
7
+ "version": "0.17.1-alpha.0",
8
8
  "sideEffects": false,
9
9
  "main": "./dist/index.js",
10
10
  "module": "./dist/index.mjs",
@@ -30,7 +30,7 @@
30
30
  "eventemitter3": "^5.0.1",
31
31
  "nanoid": "^4.0.2",
32
32
  "openai": "^4.6.0",
33
- "@copilotkit/shared": "0.1.0"
33
+ "@copilotkit/shared": "0.1.1-alpha.0"
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsup --treeshake",
@@ -1,4 +1,4 @@
1
- import { useState } from "react";
1
+ import { useRef, useState } from "react";
2
2
  import { Message, Function, FunctionCallHandler } from "../types";
3
3
  import { nanoid } from "nanoid";
4
4
  import { ChatCompletionClient } from "../openai/chat-completion-client";
@@ -84,11 +84,15 @@ export function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelper
84
84
  const [messages, setMessages] = useState<Message[]>([]);
85
85
  const [input, setInput] = useState("");
86
86
  const [isLoading, setIsLoading] = useState(false);
87
+ const abortControllerRef = useRef<AbortController>();
87
88
 
88
89
  const runChatCompletion = async (messages: Message[]): Promise<Message> => {
89
90
  return new Promise<Message>((resolve, reject) => {
90
91
  setIsLoading(true);
91
92
 
93
+ const abortController = new AbortController();
94
+ abortControllerRef.current = abortController;
95
+
92
96
  const assistantMessage: Message = {
93
97
  id: nanoid(),
94
98
  createdAt: new Date(),
@@ -108,8 +112,16 @@ export function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelper
108
112
  client.off("end");
109
113
  client.off("error");
110
114
  client.off("function");
115
+
116
+ abortControllerRef.current = undefined;
111
117
  };
112
118
 
119
+ abortController.signal.addEventListener("abort", () => {
120
+ cleanup();
121
+ setIsLoading(false);
122
+ reject(new DOMException("Aborted", "AbortError"));
123
+ });
124
+
113
125
  client.on("content", (content) => {
114
126
  assistantMessage.content += content;
115
127
  setMessages([...messages, { ...assistantMessage }]);
@@ -144,6 +156,7 @@ export function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelper
144
156
  messages: messagesWithContext,
145
157
  functions: options.functions,
146
158
  headers: options.headers,
159
+ signal: abortController.signal,
147
160
  });
148
161
  });
149
162
  };
@@ -180,7 +193,7 @@ export function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelper
180
193
  };
181
194
 
182
195
  const stop = (): void => {
183
- throw new Error("Not implemented");
196
+ abortControllerRef.current?.abort();
184
197
  };
185
198
 
186
199
  return {