@copilotkit/react-core 1.10.5-next.1 → 1.10.5-next.10

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 (156) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/{chunk-WBBJMOZI.mjs → chunk-3N4MVKFZ.mjs} +20 -18
  3. package/dist/chunk-3N4MVKFZ.mjs.map +1 -0
  4. package/dist/{chunk-2QZSAQTX.mjs → chunk-3WUDRJTT.mjs} +4 -4
  5. package/dist/{chunk-O73FZGSU.mjs → chunk-7LTRT3IV.mjs} +8 -8
  6. package/dist/{chunk-CXDK6XA5.mjs → chunk-BBUQMG45.mjs} +2 -2
  7. package/dist/{chunk-FRXYSJGZ.mjs → chunk-CUWOXXM5.mjs} +3 -3
  8. package/dist/{chunk-YHT6CWIY.mjs → chunk-EUX2P2E7.mjs} +5 -3
  9. package/dist/{chunk-YHT6CWIY.mjs.map → chunk-EUX2P2E7.mjs.map} +1 -1
  10. package/dist/{chunk-KWS75AOU.mjs → chunk-GIGUZ2OK.mjs} +3 -3
  11. package/dist/{chunk-36FJAVOF.mjs → chunk-HDOG2RTM.mjs} +2 -2
  12. package/dist/{chunk-JEMBA7PE.mjs → chunk-HI6SPUOX.mjs} +4 -4
  13. package/dist/{chunk-OLXYK6PP.mjs → chunk-HYJUBYMU.mjs} +10 -10
  14. package/dist/{chunk-UPQPBCUW.mjs → chunk-IHV5PTID.mjs} +4 -4
  15. package/dist/{chunk-ZRDV3MVW.mjs → chunk-ITDKIB5E.mjs} +37 -30
  16. package/dist/chunk-ITDKIB5E.mjs.map +1 -0
  17. package/dist/{chunk-XFJNMZ6X.mjs → chunk-JBACWIFW.mjs} +2 -2
  18. package/dist/{chunk-RLT4KZR4.mjs → chunk-JCHRWCYH.mjs} +3 -3
  19. package/dist/{chunk-N4VN2B5S.mjs → chunk-L3I57GMV.mjs} +4 -4
  20. package/dist/{chunk-WRPXFDFL.mjs → chunk-L5MS4UDD.mjs} +13 -7
  21. package/dist/chunk-L5MS4UDD.mjs.map +1 -0
  22. package/dist/{chunk-2MGJO3FY.mjs → chunk-M37URBJS.mjs} +7 -7
  23. package/dist/{chunk-MZ37BAAE.mjs → chunk-MGWRDFBE.mjs} +2 -2
  24. package/dist/{chunk-DSDAZA3B.mjs → chunk-TUTNHDM3.mjs} +4 -4
  25. package/dist/{chunk-QF3Q5LUN.mjs → chunk-ZVOLWJCY.mjs} +5 -5
  26. package/dist/chunk-ZVOLWJCY.mjs.map +1 -0
  27. package/dist/components/copilot-provider/copilot-messages.js +4 -2
  28. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  29. package/dist/components/copilot-provider/copilot-messages.mjs +3 -3
  30. package/dist/components/copilot-provider/copilotkit-props.d.ts +1 -1
  31. package/dist/components/copilot-provider/copilotkit.d.ts +1 -1
  32. package/dist/components/copilot-provider/copilotkit.js +30 -21
  33. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  34. package/dist/components/copilot-provider/copilotkit.mjs +10 -10
  35. package/dist/components/copilot-provider/index.d.ts +1 -1
  36. package/dist/components/copilot-provider/index.js +30 -21
  37. package/dist/components/copilot-provider/index.js.map +1 -1
  38. package/dist/components/copilot-provider/index.mjs +10 -10
  39. package/dist/components/dev-console/console-trigger.js +4 -2
  40. package/dist/components/dev-console/console-trigger.js.map +1 -1
  41. package/dist/components/dev-console/console-trigger.mjs +3 -3
  42. package/dist/components/dev-console/developer-console-modal.js +4 -2
  43. package/dist/components/dev-console/developer-console-modal.js.map +1 -1
  44. package/dist/components/dev-console/developer-console-modal.mjs +2 -2
  45. package/dist/components/error-boundary/error-boundary.mjs +2 -2
  46. package/dist/components/index.d.ts +1 -1
  47. package/dist/components/index.js +30 -21
  48. package/dist/components/index.js.map +1 -1
  49. package/dist/components/index.mjs +10 -10
  50. package/dist/context/copilot-context.d.ts +1 -1
  51. package/dist/context/copilot-context.js +4 -2
  52. package/dist/context/copilot-context.js.map +1 -1
  53. package/dist/context/copilot-context.mjs +1 -1
  54. package/dist/context/copilot-messages-context.d.ts +2 -2
  55. package/dist/context/index.d.ts +2 -2
  56. package/dist/context/index.js +4 -2
  57. package/dist/context/index.js.map +1 -1
  58. package/dist/context/index.mjs +4 -4
  59. package/dist/{copilot-context-59740e82.d.ts → copilot-context-cf9de848.d.ts} +2 -2
  60. package/dist/hooks/index.d.ts +2 -2
  61. package/dist/hooks/index.js +28 -18
  62. package/dist/hooks/index.js.map +1 -1
  63. package/dist/hooks/index.mjs +34 -34
  64. package/dist/hooks/use-chat.d.ts +1 -1
  65. package/dist/hooks/use-chat.js +17 -13
  66. package/dist/hooks/use-chat.js.map +1 -1
  67. package/dist/hooks/use-chat.mjs +4 -4
  68. package/dist/hooks/use-coagent-state-render.js +4 -2
  69. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  70. package/dist/hooks/use-coagent-state-render.mjs +2 -2
  71. package/dist/hooks/use-coagent.d.ts +1 -1
  72. package/dist/hooks/use-coagent.js +20 -16
  73. package/dist/hooks/use-coagent.js.map +1 -1
  74. package/dist/hooks/use-coagent.mjs +16 -16
  75. package/dist/hooks/use-copilot-action.js +4 -2
  76. package/dist/hooks/use-copilot-action.js.map +1 -1
  77. package/dist/hooks/use-copilot-action.mjs +2 -2
  78. package/dist/hooks/use-copilot-additional-instructions.js +4 -2
  79. package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
  80. package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
  81. package/dist/hooks/use-copilot-authenticated-action.js +4 -2
  82. package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
  83. package/dist/hooks/use-copilot-authenticated-action.mjs +3 -3
  84. package/dist/hooks/use-copilot-chat-headless_c.d.ts +2 -2
  85. package/dist/hooks/use-copilot-chat-headless_c.js +20 -16
  86. package/dist/hooks/use-copilot-chat-headless_c.js.map +1 -1
  87. package/dist/hooks/use-copilot-chat-headless_c.mjs +16 -16
  88. package/dist/hooks/use-copilot-chat.d.ts +2 -2
  89. package/dist/hooks/use-copilot-chat.js +20 -16
  90. package/dist/hooks/use-copilot-chat.js.map +1 -1
  91. package/dist/hooks/use-copilot-chat.mjs +16 -16
  92. package/dist/hooks/use-copilot-chat_internal.d.ts +2 -2
  93. package/dist/hooks/use-copilot-chat_internal.js +20 -16
  94. package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
  95. package/dist/hooks/use-copilot-chat_internal.mjs +15 -15
  96. package/dist/hooks/use-copilot-readable.js +4 -2
  97. package/dist/hooks/use-copilot-readable.js.map +1 -1
  98. package/dist/hooks/use-copilot-readable.mjs +2 -2
  99. package/dist/hooks/use-langgraph-interrupt-render.js +7 -5
  100. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  101. package/dist/hooks/use-langgraph-interrupt-render.mjs +2 -2
  102. package/dist/hooks/use-langgraph-interrupt.d.ts +1 -1
  103. package/dist/hooks/use-langgraph-interrupt.js +28 -18
  104. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  105. package/dist/hooks/use-langgraph-interrupt.mjs +16 -16
  106. package/dist/hooks/use-make-copilot-document-readable.js +4 -2
  107. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  108. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  109. package/dist/{index-d1743abe.d.ts → index-1f5b66ac.d.ts} +1 -1
  110. package/dist/index.d.ts +2 -2
  111. package/dist/index.js +54 -37
  112. package/dist/index.js.map +1 -1
  113. package/dist/index.mjs +39 -39
  114. package/dist/lib/copilot-task.d.ts +1 -1
  115. package/dist/lib/copilot-task.js.map +1 -1
  116. package/dist/lib/copilot-task.mjs +12 -12
  117. package/dist/lib/index.d.ts +1 -1
  118. package/dist/lib/index.js.map +1 -1
  119. package/dist/lib/index.mjs +12 -12
  120. package/dist/types/interrupt-action.d.ts +1 -1
  121. package/dist/types/interrupt-action.js.map +1 -1
  122. package/dist/utils/extract.d.ts +2 -2
  123. package/dist/utils/extract.js.map +1 -1
  124. package/dist/utils/extract.mjs +10 -10
  125. package/dist/utils/index.d.ts +2 -2
  126. package/dist/utils/index.js.map +1 -1
  127. package/dist/utils/index.mjs +10 -10
  128. package/dist/utils/suggestions.d.ts +2 -2
  129. package/dist/utils/suggestions.js.map +1 -1
  130. package/dist/utils/suggestions.mjs +10 -10
  131. package/package.json +3 -3
  132. package/src/components/copilot-provider/copilotkit.tsx +27 -17
  133. package/src/context/copilot-context.tsx +3 -3
  134. package/src/hooks/use-chat.ts +9 -7
  135. package/src/hooks/use-langgraph-interrupt-render.ts +4 -3
  136. package/src/hooks/use-langgraph-interrupt.ts +8 -3
  137. package/src/types/interrupt-action.ts +4 -1
  138. package/dist/chunk-QF3Q5LUN.mjs.map +0 -1
  139. package/dist/chunk-WBBJMOZI.mjs.map +0 -1
  140. package/dist/chunk-WRPXFDFL.mjs.map +0 -1
  141. package/dist/chunk-ZRDV3MVW.mjs.map +0 -1
  142. /package/dist/{chunk-2QZSAQTX.mjs.map → chunk-3WUDRJTT.mjs.map} +0 -0
  143. /package/dist/{chunk-O73FZGSU.mjs.map → chunk-7LTRT3IV.mjs.map} +0 -0
  144. /package/dist/{chunk-CXDK6XA5.mjs.map → chunk-BBUQMG45.mjs.map} +0 -0
  145. /package/dist/{chunk-FRXYSJGZ.mjs.map → chunk-CUWOXXM5.mjs.map} +0 -0
  146. /package/dist/{chunk-KWS75AOU.mjs.map → chunk-GIGUZ2OK.mjs.map} +0 -0
  147. /package/dist/{chunk-36FJAVOF.mjs.map → chunk-HDOG2RTM.mjs.map} +0 -0
  148. /package/dist/{chunk-JEMBA7PE.mjs.map → chunk-HI6SPUOX.mjs.map} +0 -0
  149. /package/dist/{chunk-OLXYK6PP.mjs.map → chunk-HYJUBYMU.mjs.map} +0 -0
  150. /package/dist/{chunk-UPQPBCUW.mjs.map → chunk-IHV5PTID.mjs.map} +0 -0
  151. /package/dist/{chunk-XFJNMZ6X.mjs.map → chunk-JBACWIFW.mjs.map} +0 -0
  152. /package/dist/{chunk-RLT4KZR4.mjs.map → chunk-JCHRWCYH.mjs.map} +0 -0
  153. /package/dist/{chunk-N4VN2B5S.mjs.map → chunk-L3I57GMV.mjs.map} +0 -0
  154. /package/dist/{chunk-2MGJO3FY.mjs.map → chunk-M37URBJS.mjs.map} +0 -0
  155. /package/dist/{chunk-MZ37BAAE.mjs.map → chunk-MGWRDFBE.mjs.map} +0 -0
  156. /package/dist/{chunk-DSDAZA3B.mjs.map → chunk-TUTNHDM3.mjs.map} +0 -0
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  useLangGraphInterrupt
3
- } from "../chunk-WRPXFDFL.mjs";
4
- import "../chunk-OLXYK6PP.mjs";
5
- import "../chunk-QF3Q5LUN.mjs";
6
- import "../chunk-WBBJMOZI.mjs";
7
- import "../chunk-4CEQJ2X6.mjs";
8
- import "../chunk-ZRDV3MVW.mjs";
9
- import "../chunk-N4VN2B5S.mjs";
10
- import "../chunk-2MGJO3FY.mjs";
11
- import "../chunk-FRXYSJGZ.mjs";
12
- import "../chunk-DSDAZA3B.mjs";
3
+ } from "../chunk-L5MS4UDD.mjs";
4
+ import "../chunk-HYJUBYMU.mjs";
5
+ import "../chunk-ZVOLWJCY.mjs";
6
+ import "../chunk-YPSGKPDA.mjs";
7
+ import "../chunk-ITDKIB5E.mjs";
8
+ import "../chunk-L3I57GMV.mjs";
9
+ import "../chunk-M37URBJS.mjs";
10
+ import "../chunk-CUWOXXM5.mjs";
11
+ import "../chunk-TUTNHDM3.mjs";
13
12
  import "../chunk-PIF5KJYI.mjs";
14
13
  import "../chunk-2IDV5OHF.mjs";
15
14
  import "../chunk-PMAFHQ7P.mjs";
16
15
  import "../chunk-5FHSUKQL.mjs";
17
16
  import "../chunk-RKTVJRK7.mjs";
18
- import "../chunk-Q3MCVRO3.mjs";
19
- import "../chunk-ICIK2BSB.mjs";
17
+ import "../chunk-ZLQVRPDS.mjs";
18
+ import "../chunk-6ZLPNY7X.mjs";
19
+ import "../chunk-3N4MVKFZ.mjs";
20
+ import "../chunk-4CEQJ2X6.mjs";
20
21
  import "../chunk-N4WEHORG.mjs";
21
22
  import "../chunk-O7ARI5CV.mjs";
23
+ import "../chunk-Q3MCVRO3.mjs";
24
+ import "../chunk-ICIK2BSB.mjs";
25
+ import "../chunk-EUX2P2E7.mjs";
22
26
  import "../chunk-EFL5OBKN.mjs";
23
- import "../chunk-6ZLPNY7X.mjs";
24
- import "../chunk-YPSGKPDA.mjs";
25
- import "../chunk-YHT6CWIY.mjs";
26
- import "../chunk-ZLQVRPDS.mjs";
27
27
  import "../chunk-SKC7AJIV.mjs";
28
28
  export {
29
29
  useLangGraphInterrupt
@@ -127,8 +127,10 @@ var emptyCopilotContext = {
127
127
  setExtensions: () => {
128
128
  },
129
129
  langGraphInterruptAction: null,
130
- setLangGraphInterruptAction: () => null,
131
- removeLangGraphInterruptAction: () => null,
130
+ setLangGraphInterruptAction: () => {
131
+ },
132
+ removeLangGraphInterruptAction: () => {
133
+ },
132
134
  onError: () => {
133
135
  },
134
136
  bannerError: null,
@@ -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\n // banner error state\n bannerError: CopilotKitError | null;\n setBannerError: React.Dispatch<React.SetStateAction<CopilotKitError | null>>;\n // Internal error handlers\n // These are used to handle errors that occur during the execution of the chat.\n // They are not intended for use by the developer. A component can register itself an error listener to be activated somewhere else as needed\n internalErrorHandlers: Record<string, CopilotErrorHandler>;\n setInternalErrorHandler: (handler: Record<string, CopilotErrorHandler>) => void;\n removeInternalErrorHandler: (id: string) => void;\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: () => {},\n bannerError: null,\n setBannerError: () => {},\n internalErrorHandlers: {},\n setInternalErrorHandler: () => {},\n removeInternalErrorHandler: () => {},\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: (threadId: string) => 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 // Internal error handlers\n // These are used to handle errors that occur during the execution of the chat.\n // They are not intended for use by the developer. A component can register itself an error listener to be activated somewhere else as needed\n internalErrorHandlers: Record<string, CopilotErrorHandler>;\n setInternalErrorHandler: (handler: Record<string, CopilotErrorHandler>) => void;\n removeInternalErrorHandler: (id: string) => void;\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: () => {},\n removeLangGraphInterruptAction: () => {},\n onError: () => {},\n bannerError: null,\n setBannerError: () => {},\n internalErrorHandlers: {},\n setInternalErrorHandler: () => {},\n removeInternalErrorHandler: () => {},\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;AAwOlB,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,EAAC;AAAA,EACpC,gCAAgC,MAAM;AAAA,EAAC;AAAA,EACvC,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,aAAa;AAAA,EACb,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,uBAAuB,CAAC;AAAA,EACxB,yBAAyB,MAAM;AAAA,EAAC;AAAA,EAChC,4BAA4B,MAAM;AAAA,EAAC;AACrC;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;;;ADhUO,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"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  useMakeCopilotDocumentReadable
3
- } from "../chunk-CXDK6XA5.mjs";
4
- import "../chunk-YHT6CWIY.mjs";
3
+ } from "../chunk-BBUQMG45.mjs";
4
+ import "../chunk-EUX2P2E7.mjs";
5
5
  import "../chunk-SKC7AJIV.mjs";
6
6
  export {
7
7
  useMakeCopilotDocumentReadable
@@ -1,4 +1,4 @@
1
- import { a as CopilotContextParams } from './copilot-context-59740e82.js';
1
+ import { a as CopilotContextParams } from './copilot-context-cf9de848.js';
2
2
  import { Message } from '@copilotkit/runtime-client-gql';
3
3
  import React$1 from 'react';
4
4
  import { CopilotChatSuggestionConfiguration } from './types/chat-suggestion-configuration.js';
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, u as useCopilotContext } from './copilot-context-59740e82.js';
4
- export { C as CopilotMessagesContext, a as CopilotMessagesContextParams, S as SuggestionItem, r as reloadSuggestions, u as useCopilotMessagesContext } from './index-d1743abe.js';
3
+ export { b as CoagentInChatRenderFunction, c as CopilotApiConfig, C as CopilotContext, a as CopilotContextParams, u as useCopilotContext } from './copilot-context-cf9de848.js';
4
+ export { C as CopilotMessagesContext, a as CopilotMessagesContextParams, S as SuggestionItem, r as reloadSuggestions, u as useCopilotMessagesContext } from './index-1f5b66ac.js';
5
5
  export { UseCopilotChatReturn, useCopilotChat } from './hooks/use-copilot-chat.js';
6
6
  export { UseCopilotChatOptions, UseCopilotChatOptions as UseCopilotChatOptions_c, UseCopilotChatReturn as UseCopilotChatReturn_c, useCopilotChat as useCopilotChatInternal } from './hooks/use-copilot-chat_internal.js';
7
7
  export { useCopilotChatHeadless_c } from './hooks/use-copilot-chat-headless_c.js';
package/dist/index.js CHANGED
@@ -186,8 +186,10 @@ var emptyCopilotContext = {
186
186
  setExtensions: () => {
187
187
  },
188
188
  langGraphInterruptAction: null,
189
- setLangGraphInterruptAction: () => null,
190
- removeLangGraphInterruptAction: () => null,
189
+ setLangGraphInterruptAction: () => {
190
+ },
191
+ removeLangGraphInterruptAction: () => {
192
+ },
191
193
  onError: () => {
192
194
  },
193
195
  bannerError: null,
@@ -2789,6 +2791,7 @@ function CopilotKit(_a) {
2789
2791
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ToastProvider, { enabled, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CopilotErrorBoundary, { publicApiKey, showUsageBanner: enabled, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CopilotKitInternal, __spreadProps(__spreadValues({}, props), { children })) }) });
2790
2792
  }
2791
2793
  function CopilotKitInternal(cpkProps) {
2794
+ var _b;
2792
2795
  const _a = cpkProps, { children } = _a, props = __objRest(_a, ["children"]);
2793
2796
  validateProps(cpkProps);
2794
2797
  const publicApiKey = props.publicLicenseKey || props.publicApiKey;
@@ -2891,7 +2894,7 @@ ${nonDocumentStrings}`;
2891
2894
  [removeDocument]
2892
2895
  );
2893
2896
  const copilotApiConfig = (0, import_react12.useMemo)(() => {
2894
- var _a2, _b;
2897
+ var _a2, _b2;
2895
2898
  let cloud = void 0;
2896
2899
  if (publicApiKey) {
2897
2900
  cloud = {
@@ -2900,7 +2903,7 @@ ${nonDocumentStrings}`;
2900
2903
  restrictToTopic: {
2901
2904
  enabled: Boolean(props.guardrails_c),
2902
2905
  validTopics: ((_a2 = props.guardrails_c) == null ? void 0 : _a2.validTopics) || [],
2903
- invalidTopics: ((_b = props.guardrails_c) == null ? void 0 : _b.invalidTopics) || []
2906
+ invalidTopics: ((_b2 = props.guardrails_c) == null ? void 0 : _b2.invalidTopics) || []
2904
2907
  }
2905
2908
  }
2906
2909
  }
@@ -3063,22 +3066,28 @@ ${nonDocumentStrings}`;
3063
3066
  const [runId, setRunId] = (0, import_react12.useState)(null);
3064
3067
  const chatAbortControllerRef = (0, import_react12.useRef)(null);
3065
3068
  const showDevConsole = shouldShowDevConsole(props.showDevConsole);
3066
- const [langGraphInterruptAction, _setLangGraphInterruptAction] = (0, import_react12.useState)(null);
3067
- const setLangGraphInterruptAction = (0, import_react12.useCallback)((action) => {
3068
- _setLangGraphInterruptAction((prev) => {
3069
- if (prev == null)
3070
- return action;
3071
- if (action == null)
3072
- return null;
3073
- let event = prev.event;
3074
- if (action.event) {
3075
- event = __spreadValues(__spreadValues({}, prev.event), action.event);
3076
- }
3077
- return __spreadProps(__spreadValues(__spreadValues({}, prev), action), { event });
3078
- });
3079
- }, []);
3080
- const removeLangGraphInterruptAction = (0, import_react12.useCallback)(() => {
3081
- setLangGraphInterruptAction(null);
3069
+ const [langGraphInterruptActions, _setLangGraphInterruptAction] = (0, import_react12.useState)({});
3070
+ const setLangGraphInterruptAction = (0, import_react12.useCallback)(
3071
+ (threadId, action) => {
3072
+ _setLangGraphInterruptAction((prev) => {
3073
+ var _a2, _b2, _c;
3074
+ if (action == null)
3075
+ return __spreadProps(__spreadValues({}, prev), {
3076
+ [threadId]: null
3077
+ });
3078
+ let event = (_a2 = prev[threadId]) == null ? void 0 : _a2.event;
3079
+ if (action.event) {
3080
+ event = __spreadValues(__spreadValues({}, ((_b2 = prev[threadId]) == null ? void 0 : _b2.event) || {}), action.event);
3081
+ }
3082
+ return __spreadProps(__spreadValues({}, prev), {
3083
+ [threadId]: __spreadProps(__spreadValues(__spreadValues({}, (_c = prev[threadId]) != null ? _c : {}), action), { event })
3084
+ });
3085
+ });
3086
+ },
3087
+ []
3088
+ );
3089
+ const removeLangGraphInterruptAction = (0, import_react12.useCallback)((threadId) => {
3090
+ setLangGraphInterruptAction(threadId, null);
3082
3091
  }, []);
3083
3092
  const memoizedChildren = (0, import_react12.useMemo)(() => children, [children]);
3084
3093
  const [bannerError, setBannerError] = (0, import_react12.useState)(null);
@@ -3167,7 +3176,7 @@ ${nonDocumentStrings}`;
3167
3176
  setAuthStates_c: updateAuthStates,
3168
3177
  extensions,
3169
3178
  setExtensions: updateExtensions,
3170
- langGraphInterruptAction,
3179
+ langGraphInterruptAction: (_b = langGraphInterruptActions[internalThreadId]) != null ? _b : null,
3171
3180
  setLangGraphInterruptAction,
3172
3181
  removeLangGraphInterruptAction,
3173
3182
  bannerError,
@@ -3475,7 +3484,7 @@ function useChat(options) {
3475
3484
  if (ev.name === import_runtime_client_gql7.MetaEventName.LangGraphInterruptEvent) {
3476
3485
  let eventValue = (0, import_runtime_client_gql7.langGraphInterruptEvent)(ev).value;
3477
3486
  eventValue = (0, import_shared14.parseJson)(eventValue, eventValue);
3478
- setLangGraphInterruptAction({
3487
+ setLangGraphInterruptAction(threadId, {
3479
3488
  event: __spreadProps(__spreadValues({}, (0, import_runtime_client_gql7.langGraphInterruptEvent)(ev)), {
3480
3489
  value: eventValue
3481
3490
  })
@@ -3538,7 +3547,7 @@ function useChat(options) {
3538
3547
  preservedStructure: !!originalCode
3539
3548
  });
3540
3549
  setIsLoading(false);
3541
- break;
3550
+ throw new Error(structuredError.message);
3542
3551
  } else if (messages2.length > 0) {
3543
3552
  newMessages = [...messages2];
3544
3553
  for (const message of messages2) {
@@ -3659,8 +3668,8 @@ function useChat(options) {
3659
3668
  }
3660
3669
  const currentResultMessagePairedFeAction = message.isResultMessage() ? getPairedFeAction(actions, message) : null;
3661
3670
  if (action && message.isActionExecutionMessage()) {
3662
- const isRenderAndWaitAction = (action == null ? void 0 : action._isRenderAndWait) || false;
3663
- const alreadyProcessed = isRenderAndWaitAction && finalMessages.some(
3671
+ const pairedFeAction = getPairedFeAction(actions, message);
3672
+ const alreadyProcessed = !pairedFeAction && finalMessages.some(
3664
3673
  (fm) => fm.isResultMessage() && fm.actionExecutionId === message.id
3665
3674
  );
3666
3675
  if (alreadyProcessed) {
@@ -3669,16 +3678,16 @@ function useChat(options) {
3669
3678
  action,
3670
3679
  message
3671
3680
  );
3672
- const pairedFeAction = getPairedFeAction(actions, resultMessage);
3673
- if (pairedFeAction) {
3681
+ const pairedFeAction2 = getPairedFeAction(actions, resultMessage);
3682
+ if (pairedFeAction2) {
3674
3683
  const newExecutionMessage = new import_runtime_client_gql7.ActionExecutionMessage({
3675
- name: pairedFeAction.name,
3684
+ name: pairedFeAction2.name,
3676
3685
  arguments: (0, import_shared14.parseJson)(resultMessage.result, resultMessage.result),
3677
3686
  status: message.status,
3678
3687
  createdAt: message.createdAt,
3679
3688
  parentMessageId: message.parentMessageId
3680
3689
  });
3681
- yield executeActionFromMessage(pairedFeAction, newExecutionMessage);
3690
+ yield executeActionFromMessage(pairedFeAction2, newExecutionMessage);
3682
3691
  }
3683
3692
  }
3684
3693
  } else if (message.isResultMessage() && currentResultMessagePairedFeAction) {
@@ -3773,7 +3782,7 @@ function useChat(options) {
3773
3782
  switch (event.name) {
3774
3783
  case import_runtime_client_gql7.MetaEventName.LangGraphInterruptEvent:
3775
3784
  if (event.response) {
3776
- setLangGraphInterruptAction(null);
3785
+ setLangGraphInterruptAction(threadId, null);
3777
3786
  const value = event.value;
3778
3787
  return [
3779
3788
  ...acc,
@@ -3823,8 +3832,8 @@ function useChat(options) {
3823
3832
  console.warn(`Regenerate cannot be performed on ${reloadMessageRole} role`);
3824
3833
  return;
3825
3834
  }
3826
- let historyCutoff = [];
3827
- if (messages.length > 2) {
3835
+ let historyCutoff = [messages[0]];
3836
+ if (messages.length > 2 && reloadMessageIndex !== 0) {
3828
3837
  const lastUserMessageBeforeRegenerate = messages.slice(0, reloadMessageIndex).reverse().find(
3829
3838
  (msg) => (
3830
3839
  // @ts-expect-error -- message has role
@@ -3835,6 +3844,8 @@ function useChat(options) {
3835
3844
  (msg) => msg.id === lastUserMessageBeforeRegenerate.id
3836
3845
  );
3837
3846
  historyCutoff = messages.slice(0, indexOfLastUserMessageBeforeRegenerate + 1);
3847
+ } else if (messages.length > 2 && reloadMessageIndex === 0) {
3848
+ historyCutoff = [messages[0], messages[1]];
3838
3849
  }
3839
3850
  setMessages(historyCutoff);
3840
3851
  return runChatCompletionAndHandleFunctionCall(historyCutoff);
@@ -3951,16 +3962,16 @@ var InterruptRenderer = ({ event, result, render, resolve }) => {
3951
3962
  return render({ event, result, resolve });
3952
3963
  };
3953
3964
  function useLangGraphInterruptRender() {
3954
- const { langGraphInterruptAction, setLangGraphInterruptAction, agentSession } = useCopilotContext();
3965
+ const { langGraphInterruptAction, setLangGraphInterruptAction, agentSession, threadId } = useCopilotContext();
3955
3966
  const responseRef = import_react14.default.useRef();
3956
3967
  const resolveInterrupt = (0, import_react14.useCallback)(
3957
3968
  (response) => {
3958
3969
  responseRef.current = response;
3959
3970
  setTimeout(() => {
3960
- setLangGraphInterruptAction({ event: { response } });
3971
+ setLangGraphInterruptAction(threadId, { event: { response } });
3961
3972
  }, 0);
3962
3973
  },
3963
- [setLangGraphInterruptAction]
3974
+ [setLangGraphInterruptAction, threadId]
3964
3975
  );
3965
3976
  if (!langGraphInterruptAction || !langGraphInterruptAction.event || !langGraphInterruptAction.render)
3966
3977
  return null;
@@ -4871,7 +4882,12 @@ var import_react24 = require("react");
4871
4882
  var import_shared19 = require("@copilotkit/shared");
4872
4883
  function useLangGraphInterrupt(action, dependencies) {
4873
4884
  var _a;
4874
- const { setLangGraphInterruptAction, removeLangGraphInterruptAction, langGraphInterruptAction } = (0, import_react24.useContext)(CopilotContext);
4885
+ const {
4886
+ setLangGraphInterruptAction,
4887
+ removeLangGraphInterruptAction,
4888
+ langGraphInterruptAction,
4889
+ threadId
4890
+ } = (0, import_react24.useContext)(CopilotContext);
4875
4891
  const { runChatCompletion } = useCopilotChat();
4876
4892
  const { addToast } = useToast();
4877
4893
  const actionId = (0, import_shared19.dataToUUID)(JSON.stringify(action), "lgAction");
@@ -4902,13 +4918,14 @@ function useLangGraphInterrupt(action, dependencies) {
4902
4918
  if (hasAction && isCurrentAction) {
4903
4919
  return;
4904
4920
  }
4905
- setLangGraphInterruptAction(__spreadProps(__spreadValues({}, action), { id: actionId }));
4921
+ setLangGraphInterruptAction(threadId, __spreadProps(__spreadValues({}, action), { id: actionId }));
4906
4922
  }, [
4907
4923
  action,
4908
4924
  hasAction,
4909
4925
  isCurrentAction,
4910
4926
  setLangGraphInterruptAction,
4911
4927
  removeLangGraphInterruptAction,
4928
+ threadId,
4912
4929
  ...dependencies || []
4913
4930
  ]);
4914
4931
  }