@copilotkit/react-core 1.10.0-next.7 → 1.10.0-next.9
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.
- package/CHANGELOG.md +15 -0
- package/dist/{chunk-57MBVQPX.mjs → chunk-3RHHNUVV.mjs} +2 -2
- package/dist/{chunk-AC2GVFW6.mjs → chunk-6EKLRL7B.mjs} +2 -2
- package/dist/{chunk-EQQSE6KM.mjs → chunk-CLMDRYEN.mjs} +2 -2
- package/dist/{chunk-CZWJ4VJG.mjs → chunk-FTP6FDYS.mjs} +5 -5
- package/dist/{chunk-SMLWBM4N.mjs → chunk-GEKWHETN.mjs} +4 -4
- package/dist/{chunk-XGRBVNW2.mjs → chunk-GRCHDHC4.mjs} +11 -13
- package/dist/chunk-GRCHDHC4.mjs.map +1 -0
- package/dist/{chunk-OL3VRQKU.mjs → chunk-IN7GE4NO.mjs} +2 -2
- package/dist/{chunk-KTD5U4PK.mjs → chunk-K4HXT453.mjs} +3 -3
- package/dist/{chunk-X7ETNW3P.mjs → chunk-KH27ZS4Y.mjs} +7 -7
- package/dist/{chunk-4NR26FFD.mjs → chunk-MUDXTKXE.mjs} +43 -9
- package/dist/chunk-MUDXTKXE.mjs.map +1 -0
- package/dist/{chunk-5RPZ4T2V.mjs → chunk-MWHILKQH.mjs} +2 -2
- package/dist/{chunk-PH6RVMFU.mjs → chunk-OPRDTF4S.mjs} +4 -4
- package/dist/{chunk-TUPJR242.mjs → chunk-PHIMGB3K.mjs} +13 -15
- package/dist/chunk-PHIMGB3K.mjs.map +1 -0
- package/dist/{chunk-47GMU44Z.mjs → chunk-TEMLWRRT.mjs} +1 -4
- package/dist/{chunk-47GMU44Z.mjs.map → chunk-TEMLWRRT.mjs.map} +1 -1
- package/dist/{chunk-32JPCD6C.mjs → chunk-TTI4Z6GK.mjs} +16 -17
- package/dist/chunk-TTI4Z6GK.mjs.map +1 -0
- package/dist/{chunk-A3QJUCBZ.mjs → chunk-VH45SC6Z.mjs} +4 -4
- package/dist/{chunk-BJ7N5YF5.mjs → chunk-VSH4JSN3.mjs} +3 -3
- package/dist/{chunk-DCTJZ742.mjs → chunk-ZLQVRPDS.mjs} +5 -2
- package/dist/chunk-ZLQVRPDS.mjs.map +1 -0
- package/dist/{chunk-U6JSCZCE.mjs → chunk-ZTZJIDRJ.mjs} +4 -4
- package/dist/components/copilot-provider/copilot-messages.d.ts +17 -1
- package/dist/components/copilot-provider/copilot-messages.js +35 -7
- package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
- package/dist/components/copilot-provider/copilot-messages.mjs +9 -5
- package/dist/components/copilot-provider/copilotkit-props.d.ts +1 -2
- package/dist/components/copilot-provider/copilotkit.d.ts +1 -2
- package/dist/components/copilot-provider/copilotkit.js +30 -9
- package/dist/components/copilot-provider/copilotkit.js.map +1 -1
- package/dist/components/copilot-provider/copilotkit.mjs +8 -8
- package/dist/components/copilot-provider/index.d.ts +1 -2
- package/dist/components/copilot-provider/index.js +30 -9
- package/dist/components/copilot-provider/index.js.map +1 -1
- package/dist/components/copilot-provider/index.mjs +8 -8
- package/dist/components/error-boundary/error-boundary.mjs +2 -2
- package/dist/components/index.d.ts +1 -2
- package/dist/components/index.js +30 -9
- package/dist/components/index.js.map +1 -1
- package/dist/components/index.mjs +8 -8
- package/dist/context/copilot-context.d.ts +1 -2
- package/dist/context/copilot-context.js +0 -3
- package/dist/context/copilot-context.js.map +1 -1
- package/dist/context/copilot-context.mjs +1 -1
- package/dist/context/copilot-messages-context.d.ts +11 -15
- package/dist/context/copilot-messages-context.js +4 -1
- package/dist/context/copilot-messages-context.js.map +1 -1
- package/dist/context/copilot-messages-context.mjs +1 -1
- package/dist/context/index.d.ts +2 -2
- package/dist/context/index.js +4 -4
- package/dist/context/index.js.map +1 -1
- package/dist/context/index.mjs +5 -5
- package/dist/{copilot-context-78fc727c.d.ts → copilot-context-256f9020.d.ts} +1 -21
- package/dist/hooks/index.d.ts +3 -3
- package/dist/hooks/index.js +133 -123
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +32 -32
- package/dist/hooks/use-chat.d.ts +1 -2
- package/dist/hooks/use-chat.js +0 -3
- package/dist/hooks/use-chat.js.map +1 -1
- package/dist/hooks/use-chat.mjs +4 -4
- package/dist/hooks/use-coagent-state-render.js +0 -3
- package/dist/hooks/use-coagent-state-render.js.map +1 -1
- package/dist/hooks/use-coagent-state-render.mjs +2 -2
- package/dist/hooks/use-coagent.d.ts +3 -4
- package/dist/hooks/use-coagent.js +85 -75
- package/dist/hooks/use-coagent.js.map +1 -1
- package/dist/hooks/use-coagent.mjs +14 -14
- package/dist/hooks/use-copilot-action.js +0 -3
- package/dist/hooks/use-copilot-action.js.map +1 -1
- package/dist/hooks/use-copilot-action.mjs +2 -2
- package/dist/hooks/use-copilot-additional-instructions.js +0 -3
- package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
- package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
- package/dist/hooks/use-copilot-authenticated-action.js +0 -3
- package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
- package/dist/hooks/use-copilot-authenticated-action.mjs +3 -3
- package/dist/hooks/use-copilot-chat-light.d.ts +3 -3
- package/dist/hooks/use-copilot-chat-light.js +5 -7
- package/dist/hooks/use-copilot-chat-light.js.map +1 -1
- package/dist/hooks/use-copilot-chat-light.mjs +14 -14
- package/dist/hooks/use-copilot-chat.d.ts +2 -2
- package/dist/hooks/use-copilot-chat.js +5 -7
- package/dist/hooks/use-copilot-chat.js.map +1 -1
- package/dist/hooks/use-copilot-chat.mjs +14 -14
- package/dist/hooks/use-copilot-chat_internal.d.ts +3 -3
- package/dist/hooks/use-copilot-chat_internal.js +5 -7
- package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
- package/dist/hooks/use-copilot-chat_internal.mjs +13 -13
- package/dist/hooks/use-copilot-readable.js +0 -3
- package/dist/hooks/use-copilot-readable.js.map +1 -1
- package/dist/hooks/use-copilot-readable.mjs +2 -2
- package/dist/hooks/use-langgraph-interrupt-render.js +0 -3
- package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt-render.mjs +3 -3
- package/dist/hooks/use-langgraph-interrupt.d.ts +3 -4
- package/dist/hooks/use-langgraph-interrupt.js +5 -7
- package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
- package/dist/hooks/use-langgraph-interrupt.mjs +14 -14
- package/dist/hooks/use-make-copilot-document-readable.js +0 -3
- package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
- package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
- package/dist/index-08c43df1.d.ts +36 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +38 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +37 -37
- package/dist/lib/copilot-task.d.ts +1 -2
- package/dist/lib/copilot-task.js.map +1 -1
- package/dist/lib/copilot-task.mjs +10 -10
- package/dist/lib/index.d.ts +1 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/index.mjs +10 -10
- package/dist/types/interrupt-action.d.ts +2 -3
- package/dist/utils/extract.d.ts +2 -2
- package/dist/utils/extract.js.map +1 -1
- package/dist/utils/extract.mjs +8 -8
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +8 -8
- package/dist/utils/suggestions.d.ts +2 -2
- package/dist/utils/suggestions.js.map +1 -1
- package/dist/utils/suggestions.mjs +8 -8
- package/package.json +3 -3
- package/src/components/copilot-provider/copilot-messages.tsx +57 -1
- package/src/components/copilot-provider/copilotkit.tsx +4 -5
- package/src/context/copilot-context.tsx +0 -5
- package/src/context/copilot-messages-context.tsx +7 -1
- package/src/hooks/__tests__/use-coagent-config.test.ts +7 -0
- package/src/hooks/use-coagent.ts +11 -8
- package/src/hooks/use-copilot-chat_internal.ts +2 -3
- package/dist/chunk-32JPCD6C.mjs.map +0 -1
- package/dist/chunk-4NR26FFD.mjs.map +0 -1
- package/dist/chunk-DCTJZ742.mjs.map +0 -1
- package/dist/chunk-TUPJR242.mjs.map +0 -1
- package/dist/chunk-XGRBVNW2.mjs.map +0 -1
- /package/dist/{chunk-57MBVQPX.mjs.map → chunk-3RHHNUVV.mjs.map} +0 -0
- /package/dist/{chunk-AC2GVFW6.mjs.map → chunk-6EKLRL7B.mjs.map} +0 -0
- /package/dist/{chunk-EQQSE6KM.mjs.map → chunk-CLMDRYEN.mjs.map} +0 -0
- /package/dist/{chunk-CZWJ4VJG.mjs.map → chunk-FTP6FDYS.mjs.map} +0 -0
- /package/dist/{chunk-SMLWBM4N.mjs.map → chunk-GEKWHETN.mjs.map} +0 -0
- /package/dist/{chunk-OL3VRQKU.mjs.map → chunk-IN7GE4NO.mjs.map} +0 -0
- /package/dist/{chunk-KTD5U4PK.mjs.map → chunk-K4HXT453.mjs.map} +0 -0
- /package/dist/{chunk-X7ETNW3P.mjs.map → chunk-KH27ZS4Y.mjs.map} +0 -0
- /package/dist/{chunk-5RPZ4T2V.mjs.map → chunk-MWHILKQH.mjs.map} +0 -0
- /package/dist/{chunk-PH6RVMFU.mjs.map → chunk-OPRDTF4S.mjs.map} +0 -0
- /package/dist/{chunk-A3QJUCBZ.mjs.map → chunk-VH45SC6Z.mjs.map} +0 -0
- /package/dist/{chunk-BJ7N5YF5.mjs.map → chunk-VSH4JSN3.mjs.map} +0 -0
- /package/dist/{chunk-U6JSCZCE.mjs.map → chunk-ZTZJIDRJ.mjs.map} +0 -0
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useLangGraphInterrupt
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-FTP6FDYS.mjs";
|
|
4
|
+
import "../chunk-GRCHDHC4.mjs";
|
|
5
|
+
import "../chunk-IN7GE4NO.mjs";
|
|
6
|
+
import "../chunk-KH27ZS4Y.mjs";
|
|
7
|
+
import "../chunk-4CEQJ2X6.mjs";
|
|
8
|
+
import "../chunk-PHIMGB3K.mjs";
|
|
9
|
+
import "../chunk-MUDXTKXE.mjs";
|
|
10
|
+
import "../chunk-ZTZJIDRJ.mjs";
|
|
10
11
|
import "../chunk-2IDV5OHF.mjs";
|
|
11
12
|
import "../chunk-PMAFHQ7P.mjs";
|
|
12
13
|
import "../chunk-5FHSUKQL.mjs";
|
|
13
14
|
import "../chunk-RKTVJRK7.mjs";
|
|
14
|
-
import "../chunk-DCTJZ742.mjs";
|
|
15
|
-
import "../chunk-AWFAFFO5.mjs";
|
|
16
|
-
import "../chunk-X7ETNW3P.mjs";
|
|
17
|
-
import "../chunk-4CEQJ2X6.mjs";
|
|
18
|
-
import "../chunk-N4WEHORG.mjs";
|
|
19
|
-
import "../chunk-O7ARI5CV.mjs";
|
|
20
15
|
import "../chunk-FAUNHSQU.mjs";
|
|
21
16
|
import "../chunk-ICIK2BSB.mjs";
|
|
22
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-N4WEHORG.mjs";
|
|
18
|
+
import "../chunk-O7ARI5CV.mjs";
|
|
23
19
|
import "../chunk-EFL5OBKN.mjs";
|
|
20
|
+
import "../chunk-AWFAFFO5.mjs";
|
|
21
|
+
import "../chunk-YPSGKPDA.mjs";
|
|
22
|
+
import "../chunk-TEMLWRRT.mjs";
|
|
23
|
+
import "../chunk-ZLQVRPDS.mjs";
|
|
24
24
|
import "../chunk-SKC7AJIV.mjs";
|
|
25
25
|
export {
|
|
26
26
|
useLangGraphInterrupt
|
|
@@ -130,11 +130,8 @@ var emptyCopilotContext = {
|
|
|
130
130
|
setLangGraphInterruptAction: () => null,
|
|
131
131
|
removeLangGraphInterruptAction: () => null,
|
|
132
132
|
onError: void 0,
|
|
133
|
-
suggestions: [],
|
|
134
133
|
bannerError: null,
|
|
135
134
|
setBannerError: () => {
|
|
136
|
-
},
|
|
137
|
-
setSuggestions: () => {
|
|
138
135
|
}
|
|
139
136
|
};
|
|
140
137
|
var CopilotContext = import_react.default.createContext(emptyCopilotContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/use-make-copilot-document-readable.ts","../../src/context/copilot-context.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useCopilotContext } from \"../context/copilot-context\";\nimport { DocumentPointer } from \"../types\";\n\n/**\n * Makes a document readable by Copilot.\n * @param document The document to make readable.\n * @param categories The categories to associate with the document.\n * @param dependencies The dependencies to use for the effect.\n * @returns The id of the document.\n */\nexport function useMakeCopilotDocumentReadable(\n document: DocumentPointer,\n categories?: string[],\n dependencies: any[] = [],\n): string | undefined {\n const { addDocumentContext, removeDocumentContext } = useCopilotContext();\n const idRef = useRef<string>();\n\n useEffect(() => {\n const id = addDocumentContext(document, categories);\n idRef.current = id;\n\n return () => {\n removeDocumentContext(id);\n };\n }, [addDocumentContext, removeDocumentContext, ...dependencies]);\n\n return idRef.current;\n}\n","import {\n CopilotCloudConfig,\n FunctionCallHandler,\n CopilotErrorHandler,\n CopilotKitError,\n} from \"@copilotkit/shared\";\nimport {\n ActionRenderProps,\n CatchAllActionRenderProps,\n FrontendAction,\n} from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId, Tree } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\nimport { CoAgentStateRender, CoAgentStateRenderProps } from \"../types/coagent-action\";\nimport { CoagentState } from \"../types/coagent-state\";\nimport {\n CopilotRuntimeClient,\n ExtensionsInput,\n ForwardedParametersInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { Agent } from \"@copilotkit/runtime-client-gql\";\nimport {\n LangGraphInterruptAction,\n LangGraphInterruptActionSetter,\n} from \"../types/interrupt-action\";\nimport { SuggestionItem } from \"../utils/suggestions\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n\n /**\n * Optional configuration for connecting to Model Context Protocol (MCP) servers.\n * This is typically derived from the CopilotKitProps and used internally.\n * @experimental\n */\n mcpServers?: Array<{ endpoint: string; apiKey?: string }>;\n}\n\nexport type InChatRenderFunction<TProps = ActionRenderProps<any> | CatchAllActionRenderProps<any>> =\n (props: TProps) => string | JSX.Element;\nexport type CoagentInChatRenderFunction = (\n props: CoAgentStateRenderProps<any>,\n) => string | JSX.Element | undefined | null;\n\nexport interface ChatComponentsCache {\n actions: Record<string, InChatRenderFunction | string>;\n coAgentStateRenders: Record<string, CoagentInChatRenderFunction | string>;\n}\n\nexport interface AgentSession {\n agentName: string;\n threadId?: string;\n nodeName?: string;\n}\n\nexport interface AuthState {\n status: \"authenticated\" | \"unauthenticated\";\n authHeaders: Record<string, string>;\n userId?: string;\n metadata?: Record<string, any>;\n}\n\nexport type ActionName = string;\nexport type ContextTree = Tree;\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n\n // coagent actions\n coAgentStateRenders: Record<string, CoAgentStateRender<any>>;\n setCoAgentStateRender: (id: string, stateRender: CoAgentStateRender<any>) => void;\n removeCoAgentStateRender: (id: string) => void;\n\n chatComponentsCache: React.RefObject<ChatComponentsCache>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getAllContext: () => Tree;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n additionalInstructions?: string[];\n setAdditionalInstructions: React.Dispatch<React.SetStateAction<string[]>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n\n showDevConsole: boolean;\n\n // agents\n coagentStates: Record<string, CoagentState>;\n setCoagentStates: React.Dispatch<React.SetStateAction<Record<string, CoagentState>>>;\n coagentStatesRef: React.RefObject<Record<string, CoagentState>>;\n setCoagentStatesWithRef: (\n value:\n | Record<string, CoagentState>\n | ((prev: Record<string, CoagentState>) => Record<string, CoagentState>),\n ) => void;\n\n agentSession: AgentSession | null;\n setAgentSession: React.Dispatch<React.SetStateAction<AgentSession | null>>;\n\n agentLock: string | null;\n\n threadId: string;\n setThreadId: React.Dispatch<React.SetStateAction<string>>;\n\n runId: string | null;\n setRunId: React.Dispatch<React.SetStateAction<string | null>>;\n\n // The chat abort controller can be used to stop generation globally,\n // i.e. when using `stop()` from `useChat`\n chatAbortControllerRef: React.MutableRefObject<AbortController | null>;\n\n // runtime\n runtimeClient: CopilotRuntimeClient;\n\n /**\n * The forwarded parameters to use for the task.\n */\n forwardedParameters?: Partial<Pick<ForwardedParametersInput, \"temperature\">>;\n availableAgents: Agent[];\n\n /**\n * The auth states for the CopilotKit.\n */\n authStates_c?: Record<ActionName, AuthState>;\n setAuthStates_c?: React.Dispatch<React.SetStateAction<Record<ActionName, AuthState>>>;\n\n /**\n * The auth config for the CopilotKit.\n */\n authConfig_c?: {\n SignInComponent: React.ComponentType<{\n onSignInComplete: (authState: AuthState) => void;\n }>;\n };\n\n extensions: ExtensionsInput;\n setExtensions: React.Dispatch<React.SetStateAction<ExtensionsInput>>;\n langGraphInterruptAction: LangGraphInterruptAction | null;\n setLangGraphInterruptAction: LangGraphInterruptActionSetter;\n removeLangGraphInterruptAction: () => void;\n\n /**\n * Optional trace handler for comprehensive debugging and observability.\n */\n onError?: CopilotErrorHandler;\n // suggestions state\n suggestions: SuggestionItem[];\n\n // banner error state\n bannerError: CopilotKitError | null;\n setBannerError: React.Dispatch<React.SetStateAction<CopilotKitError | null>>;\n setSuggestions: React.Dispatch<React.SetStateAction<SuggestionItem[]>>;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n coAgentStateRenders: {},\n setCoAgentStateRender: () => {},\n removeCoAgentStateRender: () => {},\n\n chatComponentsCache: { current: { actions: {}, coAgentStateRenders: {} } },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n getAllContext: () => [],\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n additionalInstructions: [],\n setAdditionalInstructions: () => returnAndThrowInDebug([]),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n runtimeClient: {} as any,\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n showDevConsole: false,\n coagentStates: {},\n setCoagentStates: () => {},\n coagentStatesRef: { current: {} },\n setCoagentStatesWithRef: () => {},\n agentSession: null,\n setAgentSession: () => {},\n forwardedParameters: {},\n agentLock: null,\n threadId: \"\",\n setThreadId: () => {},\n runId: null,\n setRunId: () => {},\n chatAbortControllerRef: { current: null },\n availableAgents: [],\n extensions: {},\n setExtensions: () => {},\n langGraphInterruptAction: null,\n setLangGraphInterruptAction: () => null,\n removeLangGraphInterruptAction: () => null,\n onError: undefined,\n suggestions: [],\n bannerError: null,\n setBannerError: () => {},\n setSuggestions: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n const context = React.useContext(CopilotContext);\n if (context === emptyCopilotContext) {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n return context;\n}\n\nfunction returnAndThrowInDebug<T>(_value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n}\n"],"mappings":"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","names":["import_react","React"]}
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-make-copilot-document-readable.ts","../../src/context/copilot-context.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useCopilotContext } from \"../context/copilot-context\";\nimport { DocumentPointer } from \"../types\";\n\n/**\n * Makes a document readable by Copilot.\n * @param document The document to make readable.\n * @param categories The categories to associate with the document.\n * @param dependencies The dependencies to use for the effect.\n * @returns The id of the document.\n */\nexport function useMakeCopilotDocumentReadable(\n document: DocumentPointer,\n categories?: string[],\n dependencies: any[] = [],\n): string | undefined {\n const { addDocumentContext, removeDocumentContext } = useCopilotContext();\n const idRef = useRef<string>();\n\n useEffect(() => {\n const id = addDocumentContext(document, categories);\n idRef.current = id;\n\n return () => {\n removeDocumentContext(id);\n };\n }, [addDocumentContext, removeDocumentContext, ...dependencies]);\n\n return idRef.current;\n}\n","import {\n CopilotCloudConfig,\n FunctionCallHandler,\n CopilotErrorHandler,\n CopilotKitError,\n} from \"@copilotkit/shared\";\nimport {\n ActionRenderProps,\n CatchAllActionRenderProps,\n FrontendAction,\n} from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId, Tree } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\nimport { CoAgentStateRender, CoAgentStateRenderProps } from \"../types/coagent-action\";\nimport { CoagentState } from \"../types/coagent-state\";\nimport {\n CopilotRuntimeClient,\n ExtensionsInput,\n ForwardedParametersInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { Agent } from \"@copilotkit/runtime-client-gql\";\nimport {\n LangGraphInterruptAction,\n LangGraphInterruptActionSetter,\n} from \"../types/interrupt-action\";\nimport { SuggestionItem } from \"../utils/suggestions\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n\n /**\n * Optional configuration for connecting to Model Context Protocol (MCP) servers.\n * This is typically derived from the CopilotKitProps and used internally.\n * @experimental\n */\n mcpServers?: Array<{ endpoint: string; apiKey?: string }>;\n}\n\nexport type InChatRenderFunction<TProps = ActionRenderProps<any> | CatchAllActionRenderProps<any>> =\n (props: TProps) => string | JSX.Element;\nexport type CoagentInChatRenderFunction = (\n props: CoAgentStateRenderProps<any>,\n) => string | JSX.Element | undefined | null;\n\nexport interface ChatComponentsCache {\n actions: Record<string, InChatRenderFunction | string>;\n coAgentStateRenders: Record<string, CoagentInChatRenderFunction | string>;\n}\n\nexport interface AgentSession {\n agentName: string;\n threadId?: string;\n nodeName?: string;\n}\n\nexport interface AuthState {\n status: \"authenticated\" | \"unauthenticated\";\n authHeaders: Record<string, string>;\n userId?: string;\n metadata?: Record<string, any>;\n}\n\nexport type ActionName = string;\nexport type ContextTree = Tree;\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n\n // coagent actions\n coAgentStateRenders: Record<string, CoAgentStateRender<any>>;\n setCoAgentStateRender: (id: string, stateRender: CoAgentStateRender<any>) => void;\n removeCoAgentStateRender: (id: string) => void;\n\n chatComponentsCache: React.RefObject<ChatComponentsCache>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getAllContext: () => Tree;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n additionalInstructions?: string[];\n setAdditionalInstructions: React.Dispatch<React.SetStateAction<string[]>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n\n showDevConsole: boolean;\n\n // agents\n coagentStates: Record<string, CoagentState>;\n setCoagentStates: React.Dispatch<React.SetStateAction<Record<string, CoagentState>>>;\n coagentStatesRef: React.RefObject<Record<string, CoagentState>>;\n setCoagentStatesWithRef: (\n value:\n | Record<string, CoagentState>\n | ((prev: Record<string, CoagentState>) => Record<string, CoagentState>),\n ) => void;\n\n agentSession: AgentSession | null;\n setAgentSession: React.Dispatch<React.SetStateAction<AgentSession | null>>;\n\n agentLock: string | null;\n\n threadId: string;\n setThreadId: React.Dispatch<React.SetStateAction<string>>;\n\n runId: string | null;\n setRunId: React.Dispatch<React.SetStateAction<string | null>>;\n\n // The chat abort controller can be used to stop generation globally,\n // i.e. when using `stop()` from `useChat`\n chatAbortControllerRef: React.MutableRefObject<AbortController | null>;\n\n // runtime\n runtimeClient: CopilotRuntimeClient;\n\n /**\n * The forwarded parameters to use for the task.\n */\n forwardedParameters?: Partial<Pick<ForwardedParametersInput, \"temperature\">>;\n availableAgents: Agent[];\n\n /**\n * The auth states for the CopilotKit.\n */\n authStates_c?: Record<ActionName, AuthState>;\n setAuthStates_c?: React.Dispatch<React.SetStateAction<Record<ActionName, AuthState>>>;\n\n /**\n * The auth config for the CopilotKit.\n */\n authConfig_c?: {\n SignInComponent: React.ComponentType<{\n onSignInComplete: (authState: AuthState) => void;\n }>;\n };\n\n extensions: ExtensionsInput;\n setExtensions: React.Dispatch<React.SetStateAction<ExtensionsInput>>;\n langGraphInterruptAction: LangGraphInterruptAction | null;\n setLangGraphInterruptAction: LangGraphInterruptActionSetter;\n removeLangGraphInterruptAction: () => void;\n\n /**\n * Optional trace handler for comprehensive debugging and observability.\n */\n onError?: CopilotErrorHandler;\n\n // banner error state\n bannerError: CopilotKitError | null;\n setBannerError: React.Dispatch<React.SetStateAction<CopilotKitError | null>>;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n coAgentStateRenders: {},\n setCoAgentStateRender: () => {},\n removeCoAgentStateRender: () => {},\n\n chatComponentsCache: { current: { actions: {}, coAgentStateRenders: {} } },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n getAllContext: () => [],\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n additionalInstructions: [],\n setAdditionalInstructions: () => returnAndThrowInDebug([]),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n runtimeClient: {} as any,\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n showDevConsole: false,\n coagentStates: {},\n setCoagentStates: () => {},\n coagentStatesRef: { current: {} },\n setCoagentStatesWithRef: () => {},\n agentSession: null,\n setAgentSession: () => {},\n forwardedParameters: {},\n agentLock: null,\n threadId: \"\",\n setThreadId: () => {},\n runId: null,\n setRunId: () => {},\n chatAbortControllerRef: { current: null },\n availableAgents: [],\n extensions: {},\n setExtensions: () => {},\n langGraphInterruptAction: null,\n setLangGraphInterruptAction: () => null,\n removeLangGraphInterruptAction: () => null,\n onError: undefined,\n bannerError: null,\n setBannerError: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n const context = React.useContext(CopilotContext);\n if (context === emptyCopilotContext) {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n return context;\n}\n\nfunction returnAndThrowInDebug<T>(_value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,gBAAkC;;;ACWlC,mBAAkB;AAkOlB,IAAM,sBAA4C;AAAA,EAChD,SAAS,CAAC;AAAA,EACV,WAAW,MAAM;AAAA,EAAC;AAAA,EAClB,cAAc,MAAM;AAAA,EAAC;AAAA,EAErB,qBAAqB,CAAC;AAAA,EACtB,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAC9B,0BAA0B,MAAM;AAAA,EAAC;AAAA,EAEjC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAAC,EAAE,EAAE;AAAA,EACzE,kBAAkB,CAAC,WAA8B,eAC/C,sBAAsB,EAAE;AAAA,EAC1B,YAAY,MAAM;AAAA,EAClB,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,eAAe,MAAM,CAAC;AAAA,EAEtB,wBAAwB,MAAM,sBAAsB,MAAY;AAAA,EAAC,EAAC;AAAA,EAElE,WAAW;AAAA,EACX,cAAc,MAAM,sBAAsB,KAAK;AAAA,EAE/C,kBAAkB;AAAA,EAClB,qBAAqB,MAAM,sBAAsB,EAAE;AAAA,EAEnD,wBAAwB,CAAC;AAAA,EACzB,2BAA2B,MAAM,sBAAsB,CAAC,CAAC;AAAA,EAEzD,qBAAqB,CAAC,eAAyB,sBAAsB,CAAC,CAAC;AAAA,EACvE,oBAAoB,MAAM,sBAAsB,EAAE;AAAA,EAClD,uBAAuB,MAAM;AAAA,EAAC;AAAA,EAC9B,eAAe,CAAC;AAAA,EAEhB,kBAAkB,IAAK,MAAkC;AAAA,IACvD,IAAI,kBAA0B;AAC5B,YAAM,IAAI,MAAM,uEAAuE;AAAA,IACzF;AAAA,IAEA,IAAI,UAAkC;AACpC,aAAO,CAAC;AAAA,IACV;AAAA,IACA,IAAI,OAA4B;AAC9B,aAAO,CAAC;AAAA,IACV;AAAA,EACF,EAAG;AAAA,EAEH,6BAA6B,CAAC;AAAA,EAC9B,gCAAgC,MAAM;AAAA,EAAC;AAAA,EACvC,mCAAmC,MAAM;AAAA,EAAC;AAAA,EAC1C,gBAAgB;AAAA,EAChB,eAAe,CAAC;AAAA,EAChB,kBAAkB,MAAM;AAAA,EAAC;AAAA,EACzB,kBAAkB,EAAE,SAAS,CAAC,EAAE;AAAA,EAChC,yBAAyB,MAAM;AAAA,EAAC;AAAA,EAChC,cAAc;AAAA,EACd,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,qBAAqB,CAAC;AAAA,EACtB,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa,MAAM;AAAA,EAAC;AAAA,EACpB,OAAO;AAAA,EACP,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,wBAAwB,EAAE,SAAS,KAAK;AAAA,EACxC,iBAAiB,CAAC;AAAA,EAClB,YAAY,CAAC;AAAA,EACb,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB,0BAA0B;AAAA,EAC1B,6BAA6B,MAAM;AAAA,EACnC,gCAAgC,MAAM;AAAA,EACtC,SAAS;AAAA,EACT,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EAAC;AACzB;AAEO,IAAM,iBAAiB,aAAAC,QAAM,cAAoC,mBAAmB;AAEpF,SAAS,oBAA0C;AACxD,QAAM,UAAU,aAAAA,QAAM,WAAW,cAAc;AAC/C,MAAI,YAAY,qBAAqB;AACnC,UAAM,IAAI,MAAM,uEAAuE;AAAA,EACzF;AACA,SAAO;AACT;AAEA,SAAS,sBAAyB,QAAc;AAC9C,QAAM,IAAI,MAAM,uEAAuE;AACzF;;;ADvTO,SAAS,+BACd,UACA,YACA,eAAsB,CAAC,GACH;AACpB,QAAM,EAAE,oBAAoB,sBAAsB,IAAI,kBAAkB;AACxE,QAAM,YAAQ,sBAAe;AAE7B,+BAAU,MAAM;AACd,UAAM,KAAK,mBAAmB,UAAU,UAAU;AAClD,UAAM,UAAU;AAEhB,WAAO,MAAM;AACX,4BAAsB,EAAE;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,oBAAoB,uBAAuB,GAAG,YAAY,CAAC;AAE/D,SAAO,MAAM;AACf;","names":["import_react","React"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { a as CopilotContextParams } from './copilot-context-256f9020.js';
|
|
2
|
+
import { Message } from '@copilotkit/runtime-client-gql';
|
|
3
|
+
import React$1 from 'react';
|
|
4
|
+
import { CopilotChatSuggestionConfiguration } from './types/chat-suggestion-configuration.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Suggestions utility functions for CopilotKit
|
|
8
|
+
*
|
|
9
|
+
* This module handles the generation of chat suggestions with optimized error handling
|
|
10
|
+
* and streaming validation to prevent infinite retry loops and console spam.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
interface SuggestionItem {
|
|
14
|
+
title: string;
|
|
15
|
+
message: string;
|
|
16
|
+
partial?: boolean;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const reloadSuggestions: (context: CopilotContextParams & CopilotMessagesContextParams, chatSuggestionConfiguration: {
|
|
20
|
+
[key: string]: CopilotChatSuggestionConfiguration;
|
|
21
|
+
}, setCurrentSuggestions: (suggestions: SuggestionItem[]) => void, abortControllerRef: React.MutableRefObject<AbortController | null>) => Promise<void>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* An internal context to separate the messages state (which is constantly changing) from the rest of CopilotKit context
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
interface CopilotMessagesContextParams {
|
|
28
|
+
messages: Message[];
|
|
29
|
+
setMessages: React$1.Dispatch<React$1.SetStateAction<Message[]>>;
|
|
30
|
+
suggestions: SuggestionItem[];
|
|
31
|
+
setSuggestions: React$1.Dispatch<React$1.SetStateAction<SuggestionItem[]>>;
|
|
32
|
+
}
|
|
33
|
+
declare const CopilotMessagesContext: React$1.Context<CopilotMessagesContextParams>;
|
|
34
|
+
declare function useCopilotMessagesContext(): CopilotMessagesContextParams;
|
|
35
|
+
|
|
36
|
+
export { CopilotMessagesContext as C, SuggestionItem as S, CopilotMessagesContextParams as a, reloadSuggestions as r, useCopilotMessagesContext as u };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { CopilotKit, defaultCopilotContextCategories } from './components/copilot-provider/copilotkit.js';
|
|
2
2
|
export { CopilotKitProps } from './components/copilot-provider/copilotkit-props.js';
|
|
3
|
-
export { b as CoagentInChatRenderFunction, c as CopilotApiConfig, C as CopilotContext, a as CopilotContextParams,
|
|
4
|
-
export { CopilotMessagesContext, CopilotMessagesContextParams, useCopilotMessagesContext } from './
|
|
3
|
+
export { b as CoagentInChatRenderFunction, c as CopilotApiConfig, C as CopilotContext, a as CopilotContextParams, u as useCopilotContext } from './copilot-context-256f9020.js';
|
|
4
|
+
export { C as CopilotMessagesContext, a as CopilotMessagesContextParams, S as SuggestionItem, r as reloadSuggestions, u as useCopilotMessagesContext } from './index-08c43df1.js';
|
|
5
5
|
export { useCopilotChat } from './hooks/use-copilot-chat.js';
|
|
6
6
|
export { UseCopilotChatLightOptions, UseCopilotChatLightReturn, useCopilotChatLight } from './hooks/use-copilot-chat-light.js';
|
|
7
7
|
export { UseCopilotChatOptions, UseCopilotChatReturn, useCopilotChat as useCopilotChatInternal } from './hooks/use-copilot-chat_internal.js';
|
package/dist/index.js
CHANGED
|
@@ -189,11 +189,8 @@ var emptyCopilotContext = {
|
|
|
189
189
|
setLangGraphInterruptAction: () => null,
|
|
190
190
|
removeLangGraphInterruptAction: () => null,
|
|
191
191
|
onError: void 0,
|
|
192
|
-
suggestions: [],
|
|
193
192
|
bannerError: null,
|
|
194
193
|
setBannerError: () => {
|
|
195
|
-
},
|
|
196
|
-
setSuggestions: () => {
|
|
197
194
|
}
|
|
198
195
|
};
|
|
199
196
|
var CopilotContext = import_react.default.createContext(emptyCopilotContext);
|
|
@@ -419,7 +416,10 @@ var import_react6 = require("react");
|
|
|
419
416
|
var import_react4 = __toESM(require("react"));
|
|
420
417
|
var emptyCopilotContext2 = {
|
|
421
418
|
messages: [],
|
|
422
|
-
setMessages: () => []
|
|
419
|
+
setMessages: () => [],
|
|
420
|
+
// suggestions state
|
|
421
|
+
suggestions: [],
|
|
422
|
+
setSuggestions: () => []
|
|
423
423
|
};
|
|
424
424
|
var CopilotMessagesContext = import_react4.default.createContext(emptyCopilotContext2);
|
|
425
425
|
function useCopilotMessagesContext() {
|
|
@@ -751,11 +751,29 @@ function shouldShowDevConsole(showDevConsole) {
|
|
|
751
751
|
// src/components/copilot-provider/copilot-messages.tsx
|
|
752
752
|
var import_shared4 = require("@copilotkit/shared");
|
|
753
753
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
754
|
+
var MessagesTapContext = (0, import_react6.createContext)(null);
|
|
755
|
+
function useMessagesTap() {
|
|
756
|
+
const tap = (0, import_react6.useContext)(MessagesTapContext);
|
|
757
|
+
if (!tap)
|
|
758
|
+
throw new Error("useMessagesTap must be used inside <MessagesTapProvider>");
|
|
759
|
+
return tap;
|
|
760
|
+
}
|
|
761
|
+
function MessagesTapProvider({ children }) {
|
|
762
|
+
const messagesRef = (0, import_react6.useRef)([]);
|
|
763
|
+
const tapRef = (0, import_react6.useRef)({
|
|
764
|
+
getMessagesFromTap: () => messagesRef.current,
|
|
765
|
+
updateTapMessages: (messages) => {
|
|
766
|
+
messagesRef.current = messages;
|
|
767
|
+
}
|
|
768
|
+
});
|
|
769
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(MessagesTapContext.Provider, { value: tapRef.current, children });
|
|
770
|
+
}
|
|
754
771
|
function CopilotMessages({ children }) {
|
|
755
772
|
const [messages, setMessages] = (0, import_react6.useState)([]);
|
|
756
773
|
const lastLoadedThreadId = (0, import_react6.useRef)();
|
|
757
774
|
const lastLoadedAgentName = (0, import_react6.useRef)();
|
|
758
775
|
const lastLoadedMessages = (0, import_react6.useRef)();
|
|
776
|
+
const { updateTapMessages } = useMessagesTap();
|
|
759
777
|
const { threadId, agentSession, runtimeClient, showDevConsole, onError, copilotApiConfig } = useCopilotContext();
|
|
760
778
|
const { setBannerError } = useToast();
|
|
761
779
|
const traceUIError = (0, import_react6.useCallback)(
|
|
@@ -892,13 +910,19 @@ function CopilotMessages({ children }) {
|
|
|
892
910
|
});
|
|
893
911
|
void fetchMessages();
|
|
894
912
|
}, [threadId, agentSession == null ? void 0 : agentSession.agentName]);
|
|
913
|
+
(0, import_react6.useEffect)(() => {
|
|
914
|
+
updateTapMessages(messages);
|
|
915
|
+
}, [messages, updateTapMessages]);
|
|
895
916
|
const memoizedChildren = (0, import_react6.useMemo)(() => children, [children]);
|
|
917
|
+
const [suggestions, setSuggestions] = (0, import_react6.useState)([]);
|
|
896
918
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
897
919
|
CopilotMessagesContext.Provider,
|
|
898
920
|
{
|
|
899
921
|
value: {
|
|
900
922
|
messages,
|
|
901
|
-
setMessages
|
|
923
|
+
setMessages,
|
|
924
|
+
suggestions,
|
|
925
|
+
setSuggestions
|
|
902
926
|
},
|
|
903
927
|
children: memoizedChildren
|
|
904
928
|
}
|
|
@@ -1990,7 +2014,6 @@ ${nonDocumentStrings}`;
|
|
|
1990
2014
|
}, []);
|
|
1991
2015
|
const memoizedChildren = (0, import_react10.useMemo)(() => children, [children]);
|
|
1992
2016
|
const [bannerError, setBannerError] = (0, import_react10.useState)(null);
|
|
1993
|
-
const [suggestions, setSuggestions] = (0, import_react10.useState)([]);
|
|
1994
2017
|
const agentLock = (0, import_react10.useMemo)(() => {
|
|
1995
2018
|
var _a2;
|
|
1996
2019
|
return (_a2 = props.agent) != null ? _a2 : null;
|
|
@@ -2080,13 +2103,11 @@ ${nonDocumentStrings}`;
|
|
|
2080
2103
|
setLangGraphInterruptAction,
|
|
2081
2104
|
removeLangGraphInterruptAction,
|
|
2082
2105
|
onError: props.onError,
|
|
2083
|
-
suggestions,
|
|
2084
|
-
setSuggestions,
|
|
2085
2106
|
bannerError,
|
|
2086
2107
|
setBannerError
|
|
2087
2108
|
},
|
|
2088
2109
|
children: [
|
|
2089
|
-
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CopilotMessages, { children: memoizedChildren }),
|
|
2110
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MessagesTapProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CopilotMessages, { children: memoizedChildren }) }),
|
|
2090
2111
|
bannerError && showDevConsole && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2091
2112
|
UsageBanner,
|
|
2092
2113
|
{
|
|
@@ -2907,11 +2928,9 @@ function useCopilotChat(options = {}) {
|
|
|
2907
2928
|
langGraphInterruptAction,
|
|
2908
2929
|
setLangGraphInterruptAction,
|
|
2909
2930
|
chatSuggestionConfiguration,
|
|
2910
|
-
suggestions,
|
|
2911
|
-
setSuggestions,
|
|
2912
2931
|
runtimeClient
|
|
2913
2932
|
} = useCopilotContext();
|
|
2914
|
-
const { messages, setMessages } = useCopilotMessagesContext();
|
|
2933
|
+
const { messages, setMessages, suggestions, setSuggestions } = useCopilotMessagesContext();
|
|
2915
2934
|
const [mcpServers, setLocalMcpServers] = (0, import_react13.useState)([]);
|
|
2916
2935
|
const suggestionsAbortControllerRef = (0, import_react13.useRef)(null);
|
|
2917
2936
|
const isLoadingSuggestionsRef = (0, import_react13.useRef)(false);
|
|
@@ -3477,8 +3496,8 @@ function useCopilotReadable({
|
|
|
3477
3496
|
var import_react19 = require("react");
|
|
3478
3497
|
var import_shared17 = require("@copilotkit/shared");
|
|
3479
3498
|
function useCoAgent(options) {
|
|
3480
|
-
const
|
|
3481
|
-
const { availableAgents } =
|
|
3499
|
+
const context = useCopilotContext();
|
|
3500
|
+
const { availableAgents } = context;
|
|
3482
3501
|
const { setBannerError } = useToast();
|
|
3483
3502
|
const lastLoadedThreadId = (0, import_react19.useRef)();
|
|
3484
3503
|
const lastLoadedState = (0, import_react19.useRef)();
|
|
@@ -3494,8 +3513,7 @@ function useCoAgent(options) {
|
|
|
3494
3513
|
setBannerError(agentError);
|
|
3495
3514
|
}
|
|
3496
3515
|
}, [availableAgents]);
|
|
3497
|
-
const
|
|
3498
|
-
const context = __spreadValues(__spreadValues({}, generalContext), messagesContext);
|
|
3516
|
+
const { getMessagesFromTap } = useMessagesTap();
|
|
3499
3517
|
const { coagentStates, coagentStatesRef, setCoagentStatesWithRef, threadId, copilotApiConfig } = context;
|
|
3500
3518
|
const { appendMessage, runChatCompletion } = useCopilotChat();
|
|
3501
3519
|
const headers = __spreadValues({}, copilotApiConfig.headers || {});
|
|
@@ -3581,7 +3599,7 @@ function useCoAgent(options) {
|
|
|
3581
3599
|
}, [JSON.stringify(options.config), JSON.stringify(options.configurable)]);
|
|
3582
3600
|
const runAgentCallback = useAsyncCallback(
|
|
3583
3601
|
(hint) => __async(this, null, function* () {
|
|
3584
|
-
yield runAgent(name, context, appendMessage, runChatCompletion, hint);
|
|
3602
|
+
yield runAgent(name, context, getMessagesFromTap(), appendMessage, runChatCompletion, hint);
|
|
3585
3603
|
}),
|
|
3586
3604
|
[name, context, appendMessage, runChatCompletion]
|
|
3587
3605
|
);
|
|
@@ -3625,7 +3643,7 @@ function stopAgent(name, context) {
|
|
|
3625
3643
|
console.warn(`No agent session found for ${name}`);
|
|
3626
3644
|
}
|
|
3627
3645
|
}
|
|
3628
|
-
function runAgent(name, context, appendMessage, runChatCompletion, hint) {
|
|
3646
|
+
function runAgent(name, context, messages, appendMessage, runChatCompletion, hint) {
|
|
3629
3647
|
return __async(this, null, function* () {
|
|
3630
3648
|
var _a, _b;
|
|
3631
3649
|
const { agentSession, setAgentSession } = context;
|
|
@@ -3635,8 +3653,8 @@ function runAgent(name, context, appendMessage, runChatCompletion, hint) {
|
|
|
3635
3653
|
});
|
|
3636
3654
|
}
|
|
3637
3655
|
let previousState = null;
|
|
3638
|
-
for (let i =
|
|
3639
|
-
const message =
|
|
3656
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
3657
|
+
const message = messages[i];
|
|
3640
3658
|
if (message.isAgentStateMessage() && message.agentName === name) {
|
|
3641
3659
|
previousState = message.state;
|
|
3642
3660
|
}
|