@copilotkit/react-core 0.18.0-alpha.0 → 0.18.0-alpha.2

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 (165) hide show
  1. package/.turbo/turbo-build.log +179 -117
  2. package/CHANGELOG.md +25 -1
  3. package/dist/{chunk-6A4PCNMZ.mjs → chunk-4CFJ6A6A.mjs} +4 -10
  4. package/dist/chunk-4CFJ6A6A.mjs.map +1 -0
  5. package/dist/{chunk-SFQOMKM2.mjs → chunk-5GS7FQPW.mjs} +13 -9
  6. package/dist/chunk-5GS7FQPW.mjs.map +1 -0
  7. package/dist/{chunk-FP4EXCGS.mjs → chunk-DGUVNY3V.mjs} +2 -2
  8. package/dist/chunk-DGUVNY3V.mjs.map +1 -0
  9. package/dist/{chunk-QTET3FBV.mjs → chunk-GBZZPQ5X.mjs} +11 -38
  10. package/dist/chunk-GBZZPQ5X.mjs.map +1 -0
  11. package/dist/chunk-IQEWY7P4.mjs +102 -0
  12. package/dist/chunk-IQEWY7P4.mjs.map +1 -0
  13. package/dist/{chunk-7P4OYNP3.mjs → chunk-IQH5AQQC.mjs} +2 -2
  14. package/dist/chunk-UAKLDQMP.mjs +61 -0
  15. package/dist/chunk-UAKLDQMP.mjs.map +1 -0
  16. package/dist/{chunk-TU4DNDO7.mjs → chunk-VP2EU4US.mjs} +3 -3
  17. package/dist/{chunk-HW5IH6PV.mjs → chunk-YOXWT7I6.mjs} +2 -2
  18. package/dist/components/copilot-provider/copilotkit-props.d.ts +39 -0
  19. package/dist/components/copilot-provider/copilotkit-props.js +4 -0
  20. package/dist/components/copilot-provider/copilotkit-props.mjs +3 -0
  21. package/dist/components/copilot-provider/{copilot-provider.d.ts → copilotkit.d.ts} +9 -15
  22. package/dist/components/copilot-provider/copilotkit.js +426 -0
  23. package/dist/components/copilot-provider/copilotkit.js.map +1 -0
  24. package/dist/components/copilot-provider/copilotkit.mjs +8 -0
  25. package/dist/components/copilot-provider/index.d.ts +2 -8
  26. package/dist/components/copilot-provider/index.js +426 -0
  27. package/dist/components/copilot-provider/index.js.map +1 -0
  28. package/dist/components/copilot-provider/index.mjs +2 -2
  29. package/dist/components/copilot-provider/standard-copilot-api-config.d.ts +2 -4
  30. package/dist/components/copilot-provider/standard-copilot-api-config.js +15 -0
  31. package/dist/components/copilot-provider/standard-copilot-api-config.js.map +1 -0
  32. package/dist/components/index.d.ts +2 -8
  33. package/dist/components/index.js +426 -0
  34. package/dist/components/index.js.map +1 -0
  35. package/dist/components/index.mjs +2 -2
  36. package/dist/context/copilot-context.d.ts +3 -5
  37. package/dist/context/copilot-context.js +47 -0
  38. package/dist/context/copilot-context.js.map +1 -0
  39. package/dist/context/copilot-context.mjs +1 -1
  40. package/dist/context/index.d.ts +2 -4
  41. package/dist/context/index.js +47 -0
  42. package/dist/context/index.js.map +1 -0
  43. package/dist/context/index.mjs +1 -1
  44. package/dist/hooks/index.d.ts +3 -4
  45. package/dist/hooks/index.js +358 -0
  46. package/dist/hooks/index.js.map +1 -0
  47. package/dist/hooks/index.mjs +8 -9
  48. package/dist/hooks/use-chat.d.ts +2 -4
  49. package/dist/hooks/use-chat.js +186 -0
  50. package/dist/hooks/use-chat.js.map +1 -0
  51. package/dist/hooks/use-chat.mjs +2 -3
  52. package/dist/hooks/use-copilot-chat.d.ts +7 -7
  53. package/dist/hooks/use-copilot-chat.js +313 -0
  54. package/dist/hooks/use-copilot-chat.js.map +1 -0
  55. package/dist/hooks/use-copilot-chat.mjs +5 -6
  56. package/dist/hooks/use-flat-category-store.js +72 -0
  57. package/dist/hooks/use-flat-category-store.js.map +1 -0
  58. package/dist/hooks/use-make-copilot-actionable.d.ts +1 -1
  59. package/dist/hooks/use-make-copilot-actionable.js +67 -0
  60. package/dist/hooks/use-make-copilot-actionable.js.map +1 -0
  61. package/dist/hooks/use-make-copilot-actionable.mjs +2 -2
  62. package/dist/hooks/use-make-copilot-document-readable.js +61 -0
  63. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -0
  64. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  65. package/dist/hooks/use-make-copilot-readable.js +61 -0
  66. package/dist/hooks/use-make-copilot-readable.js.map +1 -0
  67. package/dist/hooks/use-make-copilot-readable.mjs +2 -2
  68. package/dist/hooks/use-tree.js +155 -0
  69. package/dist/hooks/use-tree.js.map +1 -0
  70. package/dist/index.d.ts +5 -9
  71. package/dist/index.js +838 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/index.mjs +9 -12
  74. package/dist/openai-assistants/hooks/index.js +225 -0
  75. package/dist/openai-assistants/hooks/index.js.map +1 -0
  76. package/dist/openai-assistants/hooks/index.mjs +3 -3
  77. package/dist/openai-assistants/hooks/use-assistants.js +129 -0
  78. package/dist/openai-assistants/hooks/use-assistants.js.map +1 -0
  79. package/dist/openai-assistants/hooks/use-copilot-chat-v2.js +226 -0
  80. package/dist/openai-assistants/hooks/use-copilot-chat-v2.js.map +1 -0
  81. package/dist/openai-assistants/hooks/use-copilot-chat-v2.mjs +3 -3
  82. package/dist/openai-assistants/index.js +226 -0
  83. package/dist/openai-assistants/index.js.map +1 -0
  84. package/dist/openai-assistants/index.mjs +3 -3
  85. package/dist/openai-assistants/utils/index.js +49 -0
  86. package/dist/openai-assistants/utils/index.js.map +1 -0
  87. package/dist/openai-assistants/utils/process-message-stream.js +49 -0
  88. package/dist/openai-assistants/utils/process-message-stream.js.map +1 -0
  89. package/dist/types/document-pointer.js +4 -0
  90. package/dist/types/index.d.ts +1 -2
  91. package/dist/types/index.js +4 -0
  92. package/dist/types/system-message.d.ts +3 -0
  93. package/dist/types/system-message.js +4 -0
  94. package/dist/types/system-message.mjs +3 -0
  95. package/dist/utils/fetch-chat-completion.d.ts +28 -0
  96. package/dist/utils/fetch-chat-completion.js +103 -0
  97. package/dist/utils/fetch-chat-completion.js.map +1 -0
  98. package/dist/utils/fetch-chat-completion.mjs +4 -0
  99. package/dist/utils/utils.js +4 -0
  100. package/dist/utils/utils.test.js +10 -0
  101. package/dist/utils/utils.test.js.map +1 -0
  102. package/package.json +8 -8
  103. package/src/components/copilot-provider/copilotkit-props.tsx +42 -0
  104. package/src/components/copilot-provider/{copilot-provider.tsx → copilotkit.tsx} +22 -57
  105. package/src/components/copilot-provider/index.ts +2 -6
  106. package/src/context/copilot-context.tsx +5 -13
  107. package/src/hooks/use-chat.ts +54 -72
  108. package/src/hooks/use-copilot-chat.ts +16 -9
  109. package/src/hooks/use-make-copilot-actionable.ts +1 -1
  110. package/src/index.tsx +6 -1
  111. package/src/types/index.ts +1 -3
  112. package/src/types/system-message.ts +4 -0
  113. package/src/utils/fetch-chat-completion.ts +95 -0
  114. package/tsup.config.ts +1 -2
  115. package/dist/chunk-6A4PCNMZ.mjs.map +0 -1
  116. package/dist/chunk-6SOQYBNX.mjs +0 -44
  117. package/dist/chunk-6SOQYBNX.mjs.map +0 -1
  118. package/dist/chunk-FP4EXCGS.mjs.map +0 -1
  119. package/dist/chunk-LMZN4NSM.mjs +0 -113
  120. package/dist/chunk-LMZN4NSM.mjs.map +0 -1
  121. package/dist/chunk-PUFR5OAI.mjs +0 -3
  122. package/dist/chunk-QTET3FBV.mjs.map +0 -1
  123. package/dist/chunk-SFQOMKM2.mjs.map +0 -1
  124. package/dist/chunk-TKXPMMND.mjs +0 -177
  125. package/dist/chunk-TKXPMMND.mjs.map +0 -1
  126. package/dist/chunk-VK25FIML.mjs +0 -144
  127. package/dist/chunk-VK25FIML.mjs.map +0 -1
  128. package/dist/components/copilot-provider/copilot-provider-props.d.ts +0 -50
  129. package/dist/components/copilot-provider/copilot-provider-props.mjs +0 -3
  130. package/dist/components/copilot-provider/copilot-provider.mjs +0 -8
  131. package/dist/openai/chat-completion-client.d.ts +0 -52
  132. package/dist/openai/chat-completion-client.mjs +0 -5
  133. package/dist/openai/chat-completion-stream.d.ts +0 -21
  134. package/dist/openai/chat-completion-stream.mjs +0 -5
  135. package/dist/openai/chat-completion-transport.d.ts +0 -38
  136. package/dist/openai/chat-completion-transport.mjs +0 -4
  137. package/dist/openai/index.d.ts +0 -10
  138. package/dist/openai/index.mjs +0 -6
  139. package/dist/types/annotated-function.d.ts +0 -24
  140. package/dist/types/annotated-function.mjs +0 -3
  141. package/dist/types/base.d.ts +0 -56
  142. package/dist/types/base.mjs +0 -3
  143. package/dist/types/message.d.ts +0 -2
  144. package/dist/types/message.mjs +0 -3
  145. package/dist/types/message.mjs.map +0 -1
  146. package/src/components/copilot-provider/copilot-provider-props.tsx +0 -50
  147. package/src/openai/chat-completion-client.ts +0 -229
  148. package/src/openai/chat-completion-stream.ts +0 -54
  149. package/src/openai/chat-completion-transport.ts +0 -186
  150. package/src/openai/index.tsx +0 -5
  151. package/src/types/annotated-function.ts +0 -27
  152. package/src/types/base.ts +0 -61
  153. package/src/types/message.ts +0 -0
  154. /package/dist/{chunk-7P4OYNP3.mjs.map → chunk-IQH5AQQC.mjs.map} +0 -0
  155. /package/dist/{chunk-TU4DNDO7.mjs.map → chunk-VP2EU4US.mjs.map} +0 -0
  156. /package/dist/{chunk-HW5IH6PV.mjs.map → chunk-YOXWT7I6.mjs.map} +0 -0
  157. /package/dist/{chunk-PUFR5OAI.mjs.map → components/copilot-provider/copilotkit-props.js.map} +0 -0
  158. /package/dist/components/copilot-provider/{copilot-provider-props.mjs.map → copilotkit-props.mjs.map} +0 -0
  159. /package/dist/components/copilot-provider/{copilot-provider.mjs.map → copilotkit.mjs.map} +0 -0
  160. /package/dist/{openai/chat-completion-client.mjs.map → types/document-pointer.js.map} +0 -0
  161. /package/dist/{openai/chat-completion-stream.mjs.map → types/index.js.map} +0 -0
  162. /package/dist/{openai/chat-completion-transport.mjs.map → types/system-message.js.map} +0 -0
  163. /package/dist/{openai/index.mjs.map → types/system-message.mjs.map} +0 -0
  164. /package/dist/{types/annotated-function.mjs.map → utils/fetch-chat-completion.mjs.map} +0 -0
  165. /package/dist/{types/base.mjs.map → utils/utils.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/copilot-provider/copilotkit.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n\nimport { Function } from \"@copilotkit/shared\";\nimport { useCallback, useState } from \"react\";\nimport { CopilotContext, CopilotApiConfig } from \"../../context/copilot-context\";\nimport useTree from \"../../hooks/use-tree\";\nimport { DocumentPointer } from \"../../types\";\nimport {\n FunctionCallHandler,\n AnnotatedFunction,\n annotatedFunctionToChatCompletionFunction,\n} from \"@copilotkit/shared\";\nimport useFlatCategoryStore from \"../../hooks/use-flat-category-store\";\nimport { StandardCopilotApiConfig } from \"./standard-copilot-api-config\";\nimport { CopilotKitProps } from \"./copilotkit-props\";\n\n/**\n * The CopilotKit component.\n * This component provides the Copilot context to its children.\n * It can be configured either with a chat API endpoint or a CopilotApiConfig.\n *\n * NOTE: The backend can use OpenAI, or you can bring your own LLM.\n * For examples of the backend api implementation, see `examples/next-openai` usage (under `src/api/copilotkit`),\n * or read the documentation at https://docs.copilotkit.ai\n * In particular, Getting-Started > Quickstart-Backend: https://docs.copilotkit.ai/getting-started/quickstart-backend\n *\n * Example usage:\n * ```\n * <CopilotKit url=\"https://your.copilotkit.api\">\n * <App />\n * </CopilotKit>\n * ```\n *\n * or\n *\n * ```\n * const copilotApiConfig = new StandardCopilotApiConfig(\n * \"https://your.copilotkit.api/v1\",\n * \"https://your.copilotkit.api/v2\",\n * {},\n * {}\n * );\n *\n * // ...\n *\n * <CopilotKit chatApiConfig={copilotApiConfig}>\n * <App />\n * </CopilotKit>\n * ```\n *\n * @param props - The props for the component.\n * @returns The CopilotKit component.\n */\nexport function CopilotKit({ children, ...props }: CopilotKitProps) {\n // Compute all the functions and properties that we need to pass\n // to the CopilotContext.\n\n const [entryPoints, setEntryPoints] = useState<Record<string, AnnotatedFunction<any[]>>>({});\n\n const { addElement, removeElement, printTree } = useTree();\n\n const {\n addElement: addDocument,\n removeElement: removeDocument,\n allElements: allDocuments,\n } = useFlatCategoryStore<DocumentPointer>();\n\n const setEntryPoint = useCallback((id: string, entryPoint: AnnotatedFunction<any[]>) => {\n setEntryPoints((prevPoints) => {\n return {\n ...prevPoints,\n [id]: entryPoint,\n };\n });\n }, []);\n\n const removeEntryPoint = useCallback((id: string) => {\n setEntryPoints((prevPoints) => {\n const newPoints = { ...prevPoints };\n delete newPoints[id];\n return newPoints;\n });\n }, []);\n\n const getContextString = useCallback(\n (documents: DocumentPointer[], categories: string[]) => {\n const documentsString = documents\n .map((document) => {\n return `${document.name} (${document.sourceApplication}):\\n${document.getContents()}`;\n })\n .join(\"\\n\\n\");\n\n const nonDocumentStrings = printTree(categories);\n\n return `${documentsString}\\n\\n${nonDocumentStrings}`;\n },\n [printTree],\n );\n\n const addContext = useCallback(\n (\n context: string,\n parentId?: string,\n categories: string[] = defaultCopilotContextCategories,\n ) => {\n return addElement(context, categories, parentId);\n },\n [addElement],\n );\n\n const removeContext = useCallback(\n (id: string) => {\n removeElement(id);\n },\n [removeElement],\n );\n\n const getChatCompletionFunctionDescriptions = useCallback(() => {\n return entryPointsToChatCompletionFunctions(Object.values(entryPoints));\n }, [entryPoints]);\n\n const getFunctionCallHandler = useCallback(() => {\n return entryPointsToFunctionCallHandler(Object.values(entryPoints));\n }, [entryPoints]);\n\n const getDocumentsContext = useCallback(\n (categories: string[]) => {\n return allDocuments(categories);\n },\n [allDocuments],\n );\n\n const addDocumentContext = useCallback(\n (documentPointer: DocumentPointer, categories: string[] = defaultCopilotContextCategories) => {\n return addDocument(documentPointer, categories);\n },\n [addDocument],\n );\n\n const removeDocumentContext = useCallback(\n (documentId: string) => {\n removeDocument(documentId);\n },\n [removeDocument],\n );\n\n // get the appropriate CopilotApiConfig from the props\n const copilotApiConfig: CopilotApiConfig = new StandardCopilotApiConfig(\n props.url,\n `${props.url}/v2`,\n props.headers || {},\n props.body || {},\n );\n\n return (\n <CopilotContext.Provider\n value={{\n entryPoints,\n getChatCompletionFunctionDescriptions,\n getFunctionCallHandler,\n setEntryPoint,\n removeEntryPoint,\n getContextString,\n addContext,\n removeContext,\n getDocumentsContext,\n addDocumentContext,\n removeDocumentContext,\n copilotApiConfig: copilotApiConfig,\n }}\n >\n {children}\n </CopilotContext.Provider>\n );\n}\n\nexport const defaultCopilotContextCategories = [\"global\"];\n\nfunction entryPointsToFunctionCallHandler(\n entryPoints: AnnotatedFunction<any[]>[],\n): FunctionCallHandler {\n return async (chatMessages, functionCall) => {\n let entrypointsByFunctionName: Record<string, AnnotatedFunction<any[]>> = {};\n for (let entryPoint of entryPoints) {\n entrypointsByFunctionName[entryPoint.name] = entryPoint;\n }\n\n const entryPointFunction = entrypointsByFunctionName[functionCall.name || \"\"];\n if (entryPointFunction) {\n let functionCallArguments: Record<string, any>[] = [];\n if (functionCall.arguments) {\n functionCallArguments = JSON.parse(functionCall.arguments);\n }\n\n const paramsInCorrectOrder: any[] = [];\n for (let arg of entryPointFunction.argumentAnnotations) {\n paramsInCorrectOrder.push(\n functionCallArguments[arg.name as keyof typeof functionCallArguments],\n );\n }\n\n await entryPointFunction.implementation(...paramsInCorrectOrder);\n\n // commented out becasue for now we don't want to return anything\n // const result = await entryPointFunction.implementation(\n // ...parsedFunctionCallArguments\n // );\n // const functionResponse: ChatRequest = {\n // messages: [\n // ...chatMessages,\n // {\n // id: nanoid(),\n // name: functionCall.name,\n // role: 'function' as const,\n // content: JSON.stringify(result),\n // },\n // ],\n // };\n\n // return functionResponse;\n }\n };\n}\n\nfunction entryPointsToChatCompletionFunctions(entryPoints: AnnotatedFunction<any[]>[]): Function[] {\n return entryPoints.map(annotatedFunctionToChatCompletionFunction);\n}\n"]}
@@ -0,0 +1,102 @@
1
+ import { fetchAndDecodeChatCompletion } from './chunk-UAKLDQMP.mjs';
2
+ import { __async, __spreadValues } from './chunk-MRXNTQOX.mjs';
3
+ import { useState, useRef } from 'react';
4
+ import { nanoid } from 'nanoid';
5
+
6
+ function useChat(options) {
7
+ const [messages, setMessages] = useState([]);
8
+ const [input, setInput] = useState("");
9
+ const [isLoading, setIsLoading] = useState(false);
10
+ const abortControllerRef = useRef();
11
+ const runChatCompletion = (messages2) => __async(this, null, function* () {
12
+ setIsLoading(true);
13
+ const assistantMessage = {
14
+ id: nanoid(),
15
+ createdAt: /* @__PURE__ */ new Date(),
16
+ content: "",
17
+ role: "assistant"
18
+ };
19
+ const abortController = new AbortController();
20
+ abortControllerRef.current = abortController;
21
+ setMessages([...messages2, __spreadValues({}, assistantMessage)]);
22
+ const messagesWithContext = [...options.initialMessages || [], ...messages2];
23
+ const response = yield fetchAndDecodeChatCompletion({
24
+ copilotConfig: options.copilotConfig,
25
+ messages: messagesWithContext,
26
+ functions: options.functions,
27
+ headers: options.headers,
28
+ signal: abortController.signal
29
+ });
30
+ if (!response.events) {
31
+ throw new Error("Failed to fetch chat completion");
32
+ }
33
+ const reader = response.events.getReader();
34
+ while (true) {
35
+ try {
36
+ const { done, value } = yield reader.read();
37
+ if (done) {
38
+ setIsLoading(false);
39
+ return __spreadValues({}, assistantMessage);
40
+ }
41
+ if (value.type === "content") {
42
+ assistantMessage.content += value.content;
43
+ setMessages([...messages2, __spreadValues({}, assistantMessage)]);
44
+ } else if (value.type === "function") {
45
+ assistantMessage.function_call = {
46
+ name: value.name,
47
+ arguments: JSON.stringify(value.arguments)
48
+ };
49
+ setMessages([...messages2, __spreadValues({}, assistantMessage)]);
50
+ setIsLoading(false);
51
+ return __spreadValues({}, assistantMessage);
52
+ }
53
+ } catch (error) {
54
+ setIsLoading(false);
55
+ throw error;
56
+ }
57
+ }
58
+ });
59
+ const runChatCompletionAndHandleFunctionCall = (messages2) => __async(this, null, function* () {
60
+ const message = yield runChatCompletion(messages2);
61
+ if (message.function_call && options.onFunctionCall) {
62
+ yield options.onFunctionCall(messages2, message.function_call);
63
+ }
64
+ });
65
+ const append = (message) => __async(this, null, function* () {
66
+ if (isLoading) {
67
+ return;
68
+ }
69
+ const newMessages = [...messages, message];
70
+ setMessages(newMessages);
71
+ return runChatCompletionAndHandleFunctionCall(newMessages);
72
+ });
73
+ const reload = () => __async(this, null, function* () {
74
+ if (isLoading || messages.length === 0) {
75
+ return;
76
+ }
77
+ let newMessages = [...messages];
78
+ const lastMessage = messages[messages.length - 1];
79
+ if (lastMessage.role === "assistant") {
80
+ newMessages = newMessages.slice(0, -1);
81
+ }
82
+ setMessages(newMessages);
83
+ return runChatCompletionAndHandleFunctionCall(newMessages);
84
+ });
85
+ const stop = () => {
86
+ var _a;
87
+ (_a = abortControllerRef.current) == null ? void 0 : _a.abort();
88
+ };
89
+ return {
90
+ messages,
91
+ append,
92
+ reload,
93
+ stop,
94
+ isLoading,
95
+ input,
96
+ setInput
97
+ };
98
+ }
99
+
100
+ export { useChat };
101
+ //# sourceMappingURL=out.js.map
102
+ //# sourceMappingURL=chunk-IQEWY7P4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-chat.ts"],"names":["messages"],"mappings":";;;;;;;;;AAAA,SAAS,QAAQ,gBAAgB;AAEjC,SAAS,cAAc;AAgFhB,SAAS,QAAQ,SAA0D;AAChF,QAAM,CAAC,UAAU,WAAW,IAAI,SAAoB,CAAC,CAAC;AACtD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,qBAAqB,OAAwB;AAEnD,QAAM,oBAAoB,CAAOA,cAA0C;AACzE,iBAAa,IAAI;AACjB,UAAM,mBAA4B;AAAA,MAChC,IAAI,OAAO;AAAA,MACX,WAAW,oBAAI,KAAK;AAAA,MACpB,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AACA,UAAM,kBAAkB,IAAI,gBAAgB;AAC5C,uBAAmB,UAAU;AAE7B,gBAAY,CAAC,GAAGA,WAAU,mBAAK,iBAAkB,CAAC;AAElD,UAAM,sBAAsB,CAAC,GAAI,QAAQ,mBAAmB,CAAC,GAAI,GAAGA,SAAQ;AAC5E,UAAM,WAAW,MAAM,6BAA6B;AAAA,MAClD,eAAe,QAAQ;AAAA,MACvB,UAAU;AAAA,MACV,WAAW,QAAQ;AAAA,MACnB,SAAS,QAAQ;AAAA,MACjB,QAAQ,gBAAgB;AAAA,IAC1B,CAAC;AAED,QAAI,CAAC,SAAS,QAAQ;AACpB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACnD;AAEA,UAAM,SAAS,SAAS,OAAO,UAAU;AAEzC,WAAO,MAAM;AACX,UAAI;AACF,cAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAE1C,YAAI,MAAM;AACR,uBAAa,KAAK;AAClB,iBAAO,mBAAK;AAAA,QACd;AAEA,YAAI,MAAM,SAAS,WAAW;AAC5B,2BAAiB,WAAW,MAAM;AAClC,sBAAY,CAAC,GAAGA,WAAU,mBAAK,iBAAkB,CAAC;AAAA,QACpD,WAAW,MAAM,SAAS,YAAY;AACpC,2BAAiB,gBAAgB;AAAA,YAC/B,MAAM,MAAM;AAAA,YACZ,WAAW,KAAK,UAAU,MAAM,SAAS;AAAA,UAC3C;AACA,sBAAY,CAAC,GAAGA,WAAU,mBAAK,iBAAkB,CAAC;AAElD,uBAAa,KAAK;AAClB,iBAAO,mBAAK;AAAA,QACd;AAAA,MACF,SAAS,OAAP;AACA,qBAAa,KAAK;AAClB,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,QAAM,yCAAyC,CAAOA,cAAuC;AAC3F,UAAM,UAAU,MAAM,kBAAkBA,SAAQ;AAChD,QAAI,QAAQ,iBAAiB,QAAQ,gBAAgB;AACnD,YAAM,QAAQ,eAAeA,WAAU,QAAQ,aAA6B;AAAA,IAC9E;AAAA,EACF;AAEA,QAAM,SAAS,CAAO,YAAoC;AACxD,QAAI,WAAW;AACb;AAAA,IACF;AACA,UAAM,cAAc,CAAC,GAAG,UAAU,OAAO;AACzC,gBAAY,WAAW;AACvB,WAAO,uCAAuC,WAAW;AAAA,EAC3D;AAEA,QAAM,SAAS,MAA2B;AACxC,QAAI,aAAa,SAAS,WAAW,GAAG;AACtC;AAAA,IACF;AACA,QAAI,cAAc,CAAC,GAAG,QAAQ;AAC9B,UAAM,cAAc,SAAS,SAAS,SAAS,CAAC;AAEhD,QAAI,YAAY,SAAS,aAAa;AACpC,oBAAc,YAAY,MAAM,GAAG,EAAE;AAAA,IACvC;AACA,gBAAY,WAAW;AAEvB,WAAO,uCAAuC,WAAW;AAAA,EAC3D;AAEA,QAAM,OAAO,MAAY;AAhL3B;AAiLI,6BAAmB,YAAnB,mBAA4B;AAAA,EAC9B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF","sourcesContent":["import { useRef, useState } from \"react\";\nimport { Message, Function, FunctionCallHandler, FunctionCall } from \"@copilotkit/shared\";\nimport { nanoid } from \"nanoid\";\nimport { fetchAndDecodeChatCompletion } from \"../utils/fetch-chat-completion\";\nimport { CopilotApiConfig } from \"../context\";\n\nexport type UseChatOptions = {\n /**\n * The API endpoint that accepts a `{ messages: Message[] }` object and returns\n * a stream of tokens of the AI chat response. Defaults to `/api/chat`.\n */\n api?: string;\n /**\n * A unique identifier for the chat. If not provided, a random one will be\n * generated. When provided, the `useChat` hook with the same `id` will\n * have shared states across components.\n */\n id?: string;\n /**\n * System messages of the chat. Defaults to an empty array.\n */\n initialMessages?: Message[];\n /**\n * Callback function to be called when a function call is received.\n * If the function returns a `ChatRequest` object, the request will be sent\n * automatically to the API and will be used to update the chat.\n */\n onFunctionCall?: FunctionCallHandler;\n /**\n * HTTP headers to be sent with the API request.\n */\n headers?: Record<string, string> | Headers;\n /**\n * Extra body object to be sent with the API request.\n * @example\n * Send a `sessionId` to the API along with the messages.\n * ```js\n * useChat({\n * body: {\n * sessionId: '123',\n * }\n * })\n * ```\n */\n body?: object;\n /**\n * Function definitions to be sent to the API.\n */\n functions?: Function[];\n};\n\nexport type UseChatHelpers = {\n /** Current messages in the chat */\n messages: Message[];\n /**\n * Append a user message to the chat list. This triggers the API call to fetch\n * the assistant's response.\n * @param message The message to append\n */\n append: (message: Message) => Promise<void>;\n /**\n * Reload the last AI chat response for the given chat history. If the last\n * message isn't from the assistant, it will request the API to generate a\n * new response.\n */\n reload: () => Promise<void>;\n /**\n * Abort the current request immediately, keep the generated tokens if any.\n */\n stop: () => void;\n /** The current value of the input */\n input: string;\n /** setState-powered method to update the input value */\n setInput: React.Dispatch<React.SetStateAction<string>>;\n /** Whether the API request is in progress */\n isLoading: boolean;\n};\n\nexport type UseChatOptionsWithCopilotConfig = UseChatOptions & {\n copilotConfig: CopilotApiConfig;\n};\n\nexport function useChat(options: UseChatOptionsWithCopilotConfig): UseChatHelpers {\n const [messages, setMessages] = useState<Message[]>([]);\n const [input, setInput] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const abortControllerRef = useRef<AbortController>();\n\n const runChatCompletion = async (messages: Message[]): Promise<Message> => {\n setIsLoading(true);\n const assistantMessage: Message = {\n id: nanoid(),\n createdAt: new Date(),\n content: \"\",\n role: \"assistant\",\n };\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setMessages([...messages, { ...assistantMessage }]);\n\n const messagesWithContext = [...(options.initialMessages || []), ...messages];\n const response = await fetchAndDecodeChatCompletion({\n copilotConfig: options.copilotConfig,\n messages: messagesWithContext,\n functions: options.functions,\n headers: options.headers,\n signal: abortController.signal,\n });\n\n if (!response.events) {\n throw new Error(\"Failed to fetch chat completion\");\n }\n\n const reader = response.events.getReader();\n\n while (true) {\n try {\n const { done, value } = await reader.read();\n\n if (done) {\n setIsLoading(false);\n return { ...assistantMessage };\n }\n\n if (value.type === \"content\") {\n assistantMessage.content += value.content;\n setMessages([...messages, { ...assistantMessage }]);\n } else if (value.type === \"function\") {\n assistantMessage.function_call = {\n name: value.name,\n arguments: JSON.stringify(value.arguments),\n };\n setMessages([...messages, { ...assistantMessage }]);\n // quit early if we get a function call\n setIsLoading(false);\n return { ...assistantMessage };\n }\n } catch (error) {\n setIsLoading(false);\n throw error;\n }\n }\n };\n\n const runChatCompletionAndHandleFunctionCall = async (messages: Message[]): Promise<void> => {\n const message = await runChatCompletion(messages);\n if (message.function_call && options.onFunctionCall) {\n await options.onFunctionCall(messages, message.function_call as FunctionCall);\n }\n };\n\n const append = async (message: Message): Promise<void> => {\n if (isLoading) {\n return;\n }\n const newMessages = [...messages, message];\n setMessages(newMessages);\n return runChatCompletionAndHandleFunctionCall(newMessages);\n };\n\n const reload = async (): Promise<void> => {\n if (isLoading || messages.length === 0) {\n return;\n }\n let newMessages = [...messages];\n const lastMessage = messages[messages.length - 1];\n\n if (lastMessage.role === \"assistant\") {\n newMessages = newMessages.slice(0, -1);\n }\n setMessages(newMessages);\n\n return runChatCompletionAndHandleFunctionCall(newMessages);\n };\n\n const stop = (): void => {\n abortControllerRef.current?.abort();\n };\n\n return {\n messages,\n append,\n reload,\n stop,\n isLoading,\n input,\n setInput,\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { CopilotContext } from './chunk-6A4PCNMZ.mjs';
1
+ import { CopilotContext } from './chunk-4CFJ6A6A.mjs';
2
2
  import { useContext, useRef, useEffect } from 'react';
3
3
 
4
4
  function useMakeCopilotDocumentReadable(document, categories, dependencies = []) {
@@ -16,4 +16,4 @@ function useMakeCopilotDocumentReadable(document, categories, dependencies = [])
16
16
 
17
17
  export { useMakeCopilotDocumentReadable };
18
18
  //# sourceMappingURL=out.js.map
19
- //# sourceMappingURL=chunk-7P4OYNP3.mjs.map
19
+ //# sourceMappingURL=chunk-IQH5AQQC.mjs.map
@@ -0,0 +1,61 @@
1
+ import { __async, __spreadValues, __spreadProps } from './chunk-MRXNTQOX.mjs';
2
+ import { decodeChatCompletion, parseChatCompletion, decodeChatCompletionAsText } from '@copilotkit/shared';
3
+
4
+ function fetchChatCompletion(_0) {
5
+ return __async(this, arguments, function* ({
6
+ copilotConfig,
7
+ model,
8
+ messages,
9
+ functions,
10
+ temperature,
11
+ headers,
12
+ body,
13
+ signal
14
+ }) {
15
+ temperature || (temperature = 0.5);
16
+ functions || (functions = []);
17
+ const cleanedMessages = messages.map((message) => {
18
+ const { content, role, name, function_call } = message;
19
+ return { content, role, name, function_call };
20
+ });
21
+ const response = yield fetch(copilotConfig.chatApiEndpoint, {
22
+ method: "POST",
23
+ headers: __spreadValues(__spreadValues({
24
+ "Content-Type": "application/json"
25
+ }, copilotConfig.headers), headers ? __spreadValues({}, headers) : {}),
26
+ body: JSON.stringify(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
27
+ model,
28
+ messages: cleanedMessages,
29
+ stream: true
30
+ }, functions.length ? { functions } : {}), temperature ? { temperature } : {}), functions.length != 0 ? { function_call: "auto" } : {}), copilotConfig.body), body ? __spreadValues({}, body) : {})),
31
+ signal
32
+ });
33
+ return response;
34
+ });
35
+ }
36
+ function fetchAndDecodeChatCompletion(params) {
37
+ return __async(this, null, function* () {
38
+ const response = yield fetchChatCompletion(params);
39
+ if (!response.ok || !response.body) {
40
+ return __spreadProps(__spreadValues({}, response), { events: null });
41
+ }
42
+ const events = yield decodeChatCompletion(parseChatCompletion(response.body));
43
+ return __spreadProps(__spreadValues({}, response), { events });
44
+ });
45
+ }
46
+ function fetchAndDecodeChatCompletionAsText(params) {
47
+ return __async(this, null, function* () {
48
+ const response = yield fetchChatCompletion(params);
49
+ if (!response.ok || !response.body) {
50
+ return __spreadProps(__spreadValues({}, response), { events: null });
51
+ }
52
+ const events = yield decodeChatCompletionAsText(
53
+ decodeChatCompletion(parseChatCompletion(response.body))
54
+ );
55
+ return __spreadProps(__spreadValues({}, response), { events });
56
+ });
57
+ }
58
+
59
+ export { fetchAndDecodeChatCompletion, fetchAndDecodeChatCompletionAsText, fetchChatCompletion };
60
+ //# sourceMappingURL=out.js.map
61
+ //# sourceMappingURL=chunk-UAKLDQMP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/fetch-chat-completion.ts"],"names":[],"mappings":";;;;;;;AAAA;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAeP,SAAsB,oBAAoB,IASO;AAAA,6CATP;AAAA,IACxC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAAiD;AAC/C,kCAAgB;AAChB,8BAAc,CAAC;AAGf,UAAM,kBAAkB,SAAS,IAAI,CAAC,YAAY;AAChD,YAAM,EAAE,SAAS,MAAM,MAAM,cAAc,IAAI;AAC/C,aAAO,EAAE,SAAS,MAAM,MAAM,cAAc;AAAA,IAC9C,CAAC;AAED,UAAM,WAAW,MAAM,MAAM,cAAc,iBAAiB;AAAA,MAC1D,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,SACb,cAAc,UACb,UAAU,mBAAK,WAAY,CAAC;AAAA,MAElC,MAAM,KAAK,UAAU;AAAA,QACnB;AAAA,QACA,UAAU;AAAA,QACV,QAAQ;AAAA,SACJ,UAAU,SAAS,EAAE,UAAU,IAAI,CAAC,IACpC,cAAc,EAAE,YAAY,IAAI,CAAC,IACjC,UAAU,UAAU,IAAI,EAAE,eAAe,OAAO,IAAI,CAAC,IACtD,cAAc,OACb,OAAO,mBAAK,QAAS,CAAC,EAC3B;AAAA,MACD;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT;AAAA;AAMA,SAAsB,6BACpB,QACwC;AAAA;AACxC,UAAM,WAAW,MAAM,oBAAoB,MAAM;AACjD,QAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM;AAClC,aAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AAAA,IACrC;AACA,UAAM,SAAS,MAAM,qBAAqB,oBAAoB,SAAS,IAAI,CAAC;AAC5E,WAAO,iCAAK,WAAL,EAAe,OAAO;AAAA,EAC/B;AAAA;AAMA,SAAsB,mCACpB,QAC8C;AAAA;AAC9C,UAAM,WAAW,MAAM,oBAAoB,MAAM;AACjD,QAAI,CAAC,SAAS,MAAM,CAAC,SAAS,MAAM;AAClC,aAAO,iCAAK,WAAL,EAAe,QAAQ,KAAK;AAAA,IACrC;AACA,UAAM,SAAS,MAAM;AAAA,MACnB,qBAAqB,oBAAoB,SAAS,IAAI,CAAC;AAAA,IACzD;AACA,WAAO,iCAAK,WAAL,EAAe,OAAO;AAAA,EAC/B;AAAA","sourcesContent":["import {\n Message,\n Function,\n ChatCompletionEvent,\n decodeChatCompletion,\n parseChatCompletion,\n decodeChatCompletionAsText,\n} from \"@copilotkit/shared\";\nimport { CopilotApiConfig } from \"../context\";\n\nexport interface FetchChatCompletionParams {\n copilotConfig: CopilotApiConfig;\n model?: string;\n messages: Message[];\n functions?: Function[];\n temperature?: number;\n maxTokens?: number;\n headers?: Record<string, string> | Headers;\n body?: object;\n signal?: AbortSignal;\n}\n\nexport async function fetchChatCompletion({\n copilotConfig,\n model,\n messages,\n functions,\n temperature,\n headers,\n body,\n signal,\n}: FetchChatCompletionParams): Promise<Response> {\n temperature ||= 0.5;\n functions ||= [];\n\n // clean up any extra properties from messages\n const cleanedMessages = messages.map((message) => {\n const { content, role, name, function_call } = message;\n return { content, role, name, function_call };\n });\n\n const response = await fetch(copilotConfig.chatApiEndpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...copilotConfig.headers,\n ...(headers ? { ...headers } : {}),\n },\n body: JSON.stringify({\n model,\n messages: cleanedMessages,\n stream: true,\n ...(functions.length ? { functions } : {}),\n ...(temperature ? { temperature } : {}),\n ...(functions.length != 0 ? { function_call: \"auto\" } : {}),\n ...copilotConfig.body,\n ...(body ? { ...body } : {}),\n }),\n signal,\n });\n\n return response;\n}\n\nexport interface DecodedChatCompletionResponse extends Response {\n events: ReadableStream<ChatCompletionEvent> | null;\n}\n\nexport async function fetchAndDecodeChatCompletion(\n params: FetchChatCompletionParams,\n): Promise<DecodedChatCompletionResponse> {\n const response = await fetchChatCompletion(params);\n if (!response.ok || !response.body) {\n return { ...response, events: null };\n }\n const events = await decodeChatCompletion(parseChatCompletion(response.body));\n return { ...response, events };\n}\n\nexport interface DecodedChatCompletionResponseAsText extends Response {\n events: ReadableStream<string> | null;\n}\n\nexport async function fetchAndDecodeChatCompletionAsText(\n params: FetchChatCompletionParams,\n): Promise<DecodedChatCompletionResponseAsText> {\n const response = await fetchChatCompletion(params);\n if (!response.ok || !response.body) {\n return { ...response, events: null };\n }\n const events = await decodeChatCompletionAsText(\n decodeChatCompletion(parseChatCompletion(response.body)),\n );\n return { ...response, events };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { processMessageStream } from './chunk-MZ5UN3BY.mjs';
2
- import { defaultCopilotContextCategories } from './chunk-QTET3FBV.mjs';
3
- import { CopilotContext } from './chunk-6A4PCNMZ.mjs';
2
+ import { defaultCopilotContextCategories } from './chunk-GBZZPQ5X.mjs';
3
+ import { CopilotContext } from './chunk-4CFJ6A6A.mjs';
4
4
  import { __async, __spreadValues } from './chunk-MRXNTQOX.mjs';
5
5
  import { useContext, useState, useMemo } from 'react';
6
6
  import { parseStreamPart } from '@copilotkit/shared';
@@ -122,4 +122,4 @@ If you would like to call a function, call it without saying anything else.
122
122
 
123
123
  export { defaultSystemMessage, useCopilotChatV2 };
124
124
  //# sourceMappingURL=out.js.map
125
- //# sourceMappingURL=chunk-TU4DNDO7.mjs.map
125
+ //# sourceMappingURL=chunk-VP2EU4US.mjs.map
@@ -1,4 +1,4 @@
1
- import { CopilotContext } from './chunk-6A4PCNMZ.mjs';
1
+ import { CopilotContext } from './chunk-4CFJ6A6A.mjs';
2
2
  import { useContext, useRef, useEffect } from 'react';
3
3
 
4
4
  function useMakeCopilotReadable(information, parentId, categories) {
@@ -16,4 +16,4 @@ function useMakeCopilotReadable(information, parentId, categories) {
16
16
 
17
17
  export { useMakeCopilotReadable };
18
18
  //# sourceMappingURL=out.js.map
19
- //# sourceMappingURL=chunk-HW5IH6PV.mjs.map
19
+ //# sourceMappingURL=chunk-YOXWT7I6.mjs.map
@@ -0,0 +1,39 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ /**
4
+ * Props for CopilotKit.
5
+ */
6
+ interface CopilotKitProps {
7
+ /**
8
+ * The endpoint for the chat API.
9
+ */
10
+ url: string;
11
+ /**
12
+ * additional headers to be sent with the request
13
+ * @default {}
14
+ * @example
15
+ * ```
16
+ * {
17
+ * 'Authorization': 'Bearer your_token_here'
18
+ * }
19
+ * ```
20
+ */
21
+ headers?: Record<string, string>;
22
+ /**
23
+ * Additional body params to be sent with the request
24
+ * @default {}
25
+ * @example
26
+ * ```
27
+ * {
28
+ * 'message': 'Hello, world!'
29
+ * }
30
+ * ```
31
+ */
32
+ body?: Record<string, any>;
33
+ /**
34
+ * The children to be rendered within the CopilotKit.
35
+ */
36
+ children: ReactNode;
37
+ }
38
+
39
+ export { CopilotKitProps };
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=copilotkit-props.js.map
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=copilotkit-props.mjs.map
@@ -1,14 +1,8 @@
1
- import { CopilotProviderProps } from './copilot-provider-props.js';
1
+ import { CopilotKitProps } from './copilotkit-props.js';
2
2
  import 'react';
3
- import '../../context/copilot-context.js';
4
- import '../../types/annotated-function.js';
5
- import '../../types/document-pointer.js';
6
- import '../../types/base.js';
7
- import '../../hooks/use-tree.js';
8
- import 'openai/resources/chat';
9
3
 
10
4
  /**
11
- * The CopilotProvider component.
5
+ * The CopilotKit component.
12
6
  * This component provides the Copilot context to its children.
13
7
  * It can be configured either with a chat API endpoint or a CopilotApiConfig.
14
8
  *
@@ -19,9 +13,9 @@ import 'openai/resources/chat';
19
13
  *
20
14
  * Example usage:
21
15
  * ```
22
- * <CopilotProvider chatApiEndpoint="https://your.copilotkit.api">
16
+ * <CopilotKit url="https://your.copilotkit.api">
23
17
  * <App />
24
- * </CopilotProvider>
18
+ * </CopilotKit>
25
19
  * ```
26
20
  *
27
21
  * or
@@ -36,15 +30,15 @@ import 'openai/resources/chat';
36
30
  *
37
31
  * // ...
38
32
  *
39
- * <CopilotProvider chatApiConfig={copilotApiConfig}>
33
+ * <CopilotKit chatApiConfig={copilotApiConfig}>
40
34
  * <App />
41
- * </CopilotProvider>
35
+ * </CopilotKit>
42
36
  * ```
43
37
  *
44
38
  * @param props - The props for the component.
45
- * @returns The CopilotProvider component.
39
+ * @returns The CopilotKit component.
46
40
  */
47
- declare function CopilotProvider({ children, ...props }: CopilotProviderProps): JSX.Element;
41
+ declare function CopilotKit({ children, ...props }: CopilotKitProps): JSX.Element;
48
42
  declare const defaultCopilotContextCategories: string[];
49
43
 
50
- export { CopilotProvider, defaultCopilotContextCategories };
44
+ export { CopilotKit, defaultCopilotContextCategories };