@copilotkit/react-core 1.10.5-next.0 → 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 (153) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/{chunk-6INCKUL6.mjs → chunk-3N4MVKFZ.mjs} +32 -18
  3. package/dist/chunk-3N4MVKFZ.mjs.map +1 -0
  4. package/dist/{chunk-CLQLVMW4.mjs → chunk-3WUDRJTT.mjs} +2 -2
  5. package/dist/{chunk-AGP7SAEE.mjs → chunk-7LTRT3IV.mjs} +4 -4
  6. package/dist/{chunk-CXDK6XA5.mjs → chunk-BBUQMG45.mjs} +2 -2
  7. package/dist/{chunk-G2GQX4FI.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-4JBVPOHK.mjs → chunk-GIGUZ2OK.mjs} +3 -3
  11. package/dist/{chunk-36FJAVOF.mjs → chunk-HDOG2RTM.mjs} +2 -2
  12. package/dist/{chunk-AR7HJPGU.mjs → chunk-HI6SPUOX.mjs} +2 -2
  13. package/dist/{chunk-FCRODLLL.mjs → chunk-HYJUBYMU.mjs} +5 -5
  14. package/dist/{chunk-7D4OASUM.mjs → chunk-IHV5PTID.mjs} +2 -2
  15. package/dist/{chunk-7LZXD5RJ.mjs → chunk-ITDKIB5E.mjs} +30 -23
  16. package/dist/chunk-ITDKIB5E.mjs.map +1 -0
  17. package/dist/{chunk-KA3NCZEJ.mjs → chunk-JBACWIFW.mjs} +2 -2
  18. package/dist/{chunk-HHLBUGRA.mjs → chunk-JCHRWCYH.mjs} +3 -3
  19. package/dist/{chunk-NALRM7KT.mjs → chunk-L5MS4UDD.mjs} +11 -5
  20. package/dist/chunk-L5MS4UDD.mjs.map +1 -0
  21. package/dist/{chunk-MY2BUA6F.mjs → chunk-M37URBJS.mjs} +2 -2
  22. package/dist/{chunk-MZ37BAAE.mjs → chunk-MGWRDFBE.mjs} +2 -2
  23. package/dist/{chunk-23SOG4FI.mjs → chunk-TUTNHDM3.mjs} +2 -2
  24. package/dist/{chunk-QF3Q5LUN.mjs → chunk-ZVOLWJCY.mjs} +5 -5
  25. package/dist/chunk-ZVOLWJCY.mjs.map +1 -0
  26. package/dist/components/copilot-provider/copilot-messages.js +4 -2
  27. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  28. package/dist/components/copilot-provider/copilot-messages.mjs +2 -2
  29. package/dist/components/copilot-provider/copilotkit-props.d.ts +1 -1
  30. package/dist/components/copilot-provider/copilotkit.d.ts +1 -1
  31. package/dist/components/copilot-provider/copilotkit.js +30 -21
  32. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  33. package/dist/components/copilot-provider/copilotkit.mjs +5 -5
  34. package/dist/components/copilot-provider/index.d.ts +1 -1
  35. package/dist/components/copilot-provider/index.js +30 -21
  36. package/dist/components/copilot-provider/index.js.map +1 -1
  37. package/dist/components/copilot-provider/index.mjs +5 -5
  38. package/dist/components/dev-console/console-trigger.js +4 -2
  39. package/dist/components/dev-console/console-trigger.js.map +1 -1
  40. package/dist/components/dev-console/console-trigger.mjs +3 -3
  41. package/dist/components/dev-console/developer-console-modal.js +4 -2
  42. package/dist/components/dev-console/developer-console-modal.js.map +1 -1
  43. package/dist/components/dev-console/developer-console-modal.mjs +2 -2
  44. package/dist/components/index.d.ts +1 -1
  45. package/dist/components/index.js +30 -21
  46. package/dist/components/index.js.map +1 -1
  47. package/dist/components/index.mjs +5 -5
  48. package/dist/context/copilot-context.d.ts +1 -1
  49. package/dist/context/copilot-context.js +4 -2
  50. package/dist/context/copilot-context.js.map +1 -1
  51. package/dist/context/copilot-context.mjs +1 -1
  52. package/dist/context/copilot-messages-context.d.ts +2 -2
  53. package/dist/context/index.d.ts +2 -2
  54. package/dist/context/index.js +4 -2
  55. package/dist/context/index.js.map +1 -1
  56. package/dist/context/index.mjs +1 -1
  57. package/dist/{copilot-context-59740e82.d.ts → copilot-context-cf9de848.d.ts} +2 -2
  58. package/dist/hooks/index.d.ts +2 -2
  59. package/dist/hooks/index.js +44 -22
  60. package/dist/hooks/index.js.map +1 -1
  61. package/dist/hooks/index.mjs +18 -18
  62. package/dist/hooks/use-chat.d.ts +1 -1
  63. package/dist/hooks/use-chat.js +33 -17
  64. package/dist/hooks/use-chat.js.map +1 -1
  65. package/dist/hooks/use-chat.mjs +2 -2
  66. package/dist/hooks/use-coagent-state-render.js +4 -2
  67. package/dist/hooks/use-coagent-state-render.js.map +1 -1
  68. package/dist/hooks/use-coagent-state-render.mjs +2 -2
  69. package/dist/hooks/use-coagent.d.ts +1 -1
  70. package/dist/hooks/use-coagent.js +36 -20
  71. package/dist/hooks/use-coagent.js.map +1 -1
  72. package/dist/hooks/use-coagent.mjs +9 -9
  73. package/dist/hooks/use-copilot-action.js +4 -2
  74. package/dist/hooks/use-copilot-action.js.map +1 -1
  75. package/dist/hooks/use-copilot-action.mjs +2 -2
  76. package/dist/hooks/use-copilot-additional-instructions.js +4 -2
  77. package/dist/hooks/use-copilot-additional-instructions.js.map +1 -1
  78. package/dist/hooks/use-copilot-additional-instructions.mjs +2 -2
  79. package/dist/hooks/use-copilot-authenticated-action.js +4 -2
  80. package/dist/hooks/use-copilot-authenticated-action.js.map +1 -1
  81. package/dist/hooks/use-copilot-authenticated-action.mjs +3 -3
  82. package/dist/hooks/use-copilot-chat-headless_c.d.ts +2 -2
  83. package/dist/hooks/use-copilot-chat-headless_c.js +36 -20
  84. package/dist/hooks/use-copilot-chat-headless_c.js.map +1 -1
  85. package/dist/hooks/use-copilot-chat-headless_c.mjs +9 -9
  86. package/dist/hooks/use-copilot-chat.d.ts +2 -2
  87. package/dist/hooks/use-copilot-chat.js +36 -20
  88. package/dist/hooks/use-copilot-chat.js.map +1 -1
  89. package/dist/hooks/use-copilot-chat.mjs +9 -9
  90. package/dist/hooks/use-copilot-chat_internal.d.ts +2 -2
  91. package/dist/hooks/use-copilot-chat_internal.js +36 -20
  92. package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
  93. package/dist/hooks/use-copilot-chat_internal.mjs +8 -8
  94. package/dist/hooks/use-copilot-readable.js +4 -2
  95. package/dist/hooks/use-copilot-readable.js.map +1 -1
  96. package/dist/hooks/use-copilot-readable.mjs +2 -2
  97. package/dist/hooks/use-langgraph-interrupt-render.js +7 -5
  98. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  99. package/dist/hooks/use-langgraph-interrupt-render.mjs +2 -2
  100. package/dist/hooks/use-langgraph-interrupt.d.ts +1 -1
  101. package/dist/hooks/use-langgraph-interrupt.js +44 -22
  102. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  103. package/dist/hooks/use-langgraph-interrupt.mjs +9 -9
  104. package/dist/hooks/use-make-copilot-document-readable.js +4 -2
  105. package/dist/hooks/use-make-copilot-document-readable.js.map +1 -1
  106. package/dist/hooks/use-make-copilot-document-readable.mjs +2 -2
  107. package/dist/{index-d1743abe.d.ts → index-1f5b66ac.d.ts} +1 -1
  108. package/dist/index.d.ts +2 -2
  109. package/dist/index.js +70 -41
  110. package/dist/index.js.map +1 -1
  111. package/dist/index.mjs +19 -19
  112. package/dist/lib/copilot-task.d.ts +1 -1
  113. package/dist/lib/copilot-task.js.map +1 -1
  114. package/dist/lib/copilot-task.mjs +6 -6
  115. package/dist/lib/index.d.ts +1 -1
  116. package/dist/lib/index.js.map +1 -1
  117. package/dist/lib/index.mjs +6 -6
  118. package/dist/types/interrupt-action.d.ts +1 -1
  119. package/dist/types/interrupt-action.js.map +1 -1
  120. package/dist/utils/extract.d.ts +2 -2
  121. package/dist/utils/extract.js.map +1 -1
  122. package/dist/utils/extract.mjs +5 -5
  123. package/dist/utils/index.d.ts +2 -2
  124. package/dist/utils/index.js.map +1 -1
  125. package/dist/utils/index.mjs +5 -5
  126. package/dist/utils/suggestions.d.ts +2 -2
  127. package/dist/utils/suggestions.js.map +1 -1
  128. package/dist/utils/suggestions.mjs +5 -5
  129. package/package.json +3 -3
  130. package/src/components/copilot-provider/copilotkit.tsx +27 -17
  131. package/src/context/copilot-context.tsx +3 -3
  132. package/src/hooks/use-chat.ts +27 -11
  133. package/src/hooks/use-langgraph-interrupt-render.ts +4 -3
  134. package/src/hooks/use-langgraph-interrupt.ts +8 -3
  135. package/src/types/interrupt-action.ts +4 -1
  136. package/dist/chunk-6INCKUL6.mjs.map +0 -1
  137. package/dist/chunk-7LZXD5RJ.mjs.map +0 -1
  138. package/dist/chunk-NALRM7KT.mjs.map +0 -1
  139. package/dist/chunk-QF3Q5LUN.mjs.map +0 -1
  140. /package/dist/{chunk-CLQLVMW4.mjs.map → chunk-3WUDRJTT.mjs.map} +0 -0
  141. /package/dist/{chunk-AGP7SAEE.mjs.map → chunk-7LTRT3IV.mjs.map} +0 -0
  142. /package/dist/{chunk-CXDK6XA5.mjs.map → chunk-BBUQMG45.mjs.map} +0 -0
  143. /package/dist/{chunk-G2GQX4FI.mjs.map → chunk-CUWOXXM5.mjs.map} +0 -0
  144. /package/dist/{chunk-4JBVPOHK.mjs.map → chunk-GIGUZ2OK.mjs.map} +0 -0
  145. /package/dist/{chunk-36FJAVOF.mjs.map → chunk-HDOG2RTM.mjs.map} +0 -0
  146. /package/dist/{chunk-AR7HJPGU.mjs.map → chunk-HI6SPUOX.mjs.map} +0 -0
  147. /package/dist/{chunk-FCRODLLL.mjs.map → chunk-HYJUBYMU.mjs.map} +0 -0
  148. /package/dist/{chunk-7D4OASUM.mjs.map → chunk-IHV5PTID.mjs.map} +0 -0
  149. /package/dist/{chunk-KA3NCZEJ.mjs.map → chunk-JBACWIFW.mjs.map} +0 -0
  150. /package/dist/{chunk-HHLBUGRA.mjs.map → chunk-JCHRWCYH.mjs.map} +0 -0
  151. /package/dist/{chunk-MY2BUA6F.mjs.map → chunk-M37URBJS.mjs.map} +0 -0
  152. /package/dist/{chunk-MZ37BAAE.mjs.map → chunk-MGWRDFBE.mjs.map} +0 -0
  153. /package/dist/{chunk-23SOG4FI.mjs.map → chunk-TUTNHDM3.mjs.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  useLangGraphInterrupt
3
- } from "../chunk-NALRM7KT.mjs";
4
- import "../chunk-FCRODLLL.mjs";
5
- import "../chunk-QF3Q5LUN.mjs";
3
+ } from "../chunk-L5MS4UDD.mjs";
4
+ import "../chunk-HYJUBYMU.mjs";
5
+ import "../chunk-ZVOLWJCY.mjs";
6
6
  import "../chunk-YPSGKPDA.mjs";
7
- import "../chunk-7LZXD5RJ.mjs";
7
+ import "../chunk-ITDKIB5E.mjs";
8
8
  import "../chunk-L3I57GMV.mjs";
9
- import "../chunk-MY2BUA6F.mjs";
10
- import "../chunk-G2GQX4FI.mjs";
11
- import "../chunk-23SOG4FI.mjs";
9
+ import "../chunk-M37URBJS.mjs";
10
+ import "../chunk-CUWOXXM5.mjs";
11
+ import "../chunk-TUTNHDM3.mjs";
12
12
  import "../chunk-PIF5KJYI.mjs";
13
13
  import "../chunk-2IDV5OHF.mjs";
14
14
  import "../chunk-PMAFHQ7P.mjs";
@@ -16,13 +16,13 @@ import "../chunk-5FHSUKQL.mjs";
16
16
  import "../chunk-RKTVJRK7.mjs";
17
17
  import "../chunk-ZLQVRPDS.mjs";
18
18
  import "../chunk-6ZLPNY7X.mjs";
19
- import "../chunk-6INCKUL6.mjs";
19
+ import "../chunk-3N4MVKFZ.mjs";
20
20
  import "../chunk-4CEQJ2X6.mjs";
21
21
  import "../chunk-N4WEHORG.mjs";
22
22
  import "../chunk-O7ARI5CV.mjs";
23
23
  import "../chunk-Q3MCVRO3.mjs";
24
24
  import "../chunk-ICIK2BSB.mjs";
25
- import "../chunk-YHT6CWIY.mjs";
25
+ import "../chunk-EUX2P2E7.mjs";
26
26
  import "../chunk-EFL5OBKN.mjs";
27
27
  import "../chunk-SKC7AJIV.mjs";
28
28
  export {
@@ -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":"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","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,
@@ -3305,7 +3314,18 @@ function useChat(options) {
3305
3314
  const runChatCompletionRef = (0, import_react13.useRef)();
3306
3315
  const addErrorToast = useErrorToast();
3307
3316
  const { setBannerError } = useToast();
3308
- const { onError } = useCopilotContext();
3317
+ const { onError, showDevConsole, getAllContext } = useCopilotContext();
3318
+ const copilotReadableContext = getAllContext();
3319
+ const context = (0, import_react13.useMemo)(
3320
+ () => copilotReadableContext.map((contextItem) => {
3321
+ const [description, ...valueParts] = contextItem.value.split(":");
3322
+ return {
3323
+ description: description.trim(),
3324
+ value: valueParts.join(":").trim()
3325
+ };
3326
+ }),
3327
+ [copilotReadableContext]
3328
+ );
3309
3329
  const traceUIError = (error, originalError) => __async(this, null, function* () {
3310
3330
  try {
3311
3331
  const traceEvent = {
@@ -3339,7 +3359,6 @@ function useChat(options) {
3339
3359
  extensionsRef.current = extensions;
3340
3360
  const publicApiKey = copilotConfig.publicApiKey;
3341
3361
  const headers = __spreadValues(__spreadValues({}, copilotConfig.headers || {}), publicApiKey ? { [import_shared14.COPILOT_CLOUD_PUBLIC_API_KEY_HEADER]: publicApiKey } : {});
3342
- const { showDevConsole } = useCopilotContext();
3343
3362
  const runtimeClient = useCopilotRuntimeClient({
3344
3363
  url: copilotConfig.chatApiEndpoint,
3345
3364
  publicApiKey: copilotConfig.publicApiKey,
@@ -3420,7 +3439,8 @@ function useChat(options) {
3420
3439
  }
3421
3440
  return stateObject;
3422
3441
  }),
3423
- forwardedParameters: options.forwardedParameters || {}
3442
+ forwardedParameters: options.forwardedParameters || {},
3443
+ context
3424
3444
  }),
3425
3445
  properties: finalProperties,
3426
3446
  signal: (_e = chatAbortControllerRef.current) == null ? void 0 : _e.signal
@@ -3464,7 +3484,7 @@ function useChat(options) {
3464
3484
  if (ev.name === import_runtime_client_gql7.MetaEventName.LangGraphInterruptEvent) {
3465
3485
  let eventValue = (0, import_runtime_client_gql7.langGraphInterruptEvent)(ev).value;
3466
3486
  eventValue = (0, import_shared14.parseJson)(eventValue, eventValue);
3467
- setLangGraphInterruptAction({
3487
+ setLangGraphInterruptAction(threadId, {
3468
3488
  event: __spreadProps(__spreadValues({}, (0, import_runtime_client_gql7.langGraphInterruptEvent)(ev)), {
3469
3489
  value: eventValue
3470
3490
  })
@@ -3527,7 +3547,7 @@ function useChat(options) {
3527
3547
  preservedStructure: !!originalCode
3528
3548
  });
3529
3549
  setIsLoading(false);
3530
- break;
3550
+ throw new Error(structuredError.message);
3531
3551
  } else if (messages2.length > 0) {
3532
3552
  newMessages = [...messages2];
3533
3553
  for (const message of messages2) {
@@ -3648,8 +3668,8 @@ function useChat(options) {
3648
3668
  }
3649
3669
  const currentResultMessagePairedFeAction = message.isResultMessage() ? getPairedFeAction(actions, message) : null;
3650
3670
  if (action && message.isActionExecutionMessage()) {
3651
- const isRenderAndWaitAction = (action == null ? void 0 : action._isRenderAndWait) || false;
3652
- const alreadyProcessed = isRenderAndWaitAction && finalMessages.some(
3671
+ const pairedFeAction = getPairedFeAction(actions, message);
3672
+ const alreadyProcessed = !pairedFeAction && finalMessages.some(
3653
3673
  (fm) => fm.isResultMessage() && fm.actionExecutionId === message.id
3654
3674
  );
3655
3675
  if (alreadyProcessed) {
@@ -3658,16 +3678,16 @@ function useChat(options) {
3658
3678
  action,
3659
3679
  message
3660
3680
  );
3661
- const pairedFeAction = getPairedFeAction(actions, resultMessage);
3662
- if (pairedFeAction) {
3681
+ const pairedFeAction2 = getPairedFeAction(actions, resultMessage);
3682
+ if (pairedFeAction2) {
3663
3683
  const newExecutionMessage = new import_runtime_client_gql7.ActionExecutionMessage({
3664
- name: pairedFeAction.name,
3684
+ name: pairedFeAction2.name,
3665
3685
  arguments: (0, import_shared14.parseJson)(resultMessage.result, resultMessage.result),
3666
3686
  status: message.status,
3667
3687
  createdAt: message.createdAt,
3668
3688
  parentMessageId: message.parentMessageId
3669
3689
  });
3670
- yield executeActionFromMessage(pairedFeAction, newExecutionMessage);
3690
+ yield executeActionFromMessage(pairedFeAction2, newExecutionMessage);
3671
3691
  }
3672
3692
  }
3673
3693
  } else if (message.isResultMessage() && currentResultMessagePairedFeAction) {
@@ -3732,7 +3752,8 @@ function useChat(options) {
3732
3752
  coagentStatesRef,
3733
3753
  agentSession,
3734
3754
  setAgentSession,
3735
- disableSystemMessage
3755
+ disableSystemMessage,
3756
+ context
3736
3757
  ]
3737
3758
  );
3738
3759
  runChatCompletionRef.current = runChatCompletion;
@@ -3761,7 +3782,7 @@ function useChat(options) {
3761
3782
  switch (event.name) {
3762
3783
  case import_runtime_client_gql7.MetaEventName.LangGraphInterruptEvent:
3763
3784
  if (event.response) {
3764
- setLangGraphInterruptAction(null);
3785
+ setLangGraphInterruptAction(threadId, null);
3765
3786
  const value = event.value;
3766
3787
  return [
3767
3788
  ...acc,
@@ -3811,8 +3832,8 @@ function useChat(options) {
3811
3832
  console.warn(`Regenerate cannot be performed on ${reloadMessageRole} role`);
3812
3833
  return;
3813
3834
  }
3814
- let historyCutoff = [];
3815
- if (messages.length > 2) {
3835
+ let historyCutoff = [messages[0]];
3836
+ if (messages.length > 2 && reloadMessageIndex !== 0) {
3816
3837
  const lastUserMessageBeforeRegenerate = messages.slice(0, reloadMessageIndex).reverse().find(
3817
3838
  (msg) => (
3818
3839
  // @ts-expect-error -- message has role
@@ -3823,6 +3844,8 @@ function useChat(options) {
3823
3844
  (msg) => msg.id === lastUserMessageBeforeRegenerate.id
3824
3845
  );
3825
3846
  historyCutoff = messages.slice(0, indexOfLastUserMessageBeforeRegenerate + 1);
3847
+ } else if (messages.length > 2 && reloadMessageIndex === 0) {
3848
+ historyCutoff = [messages[0], messages[1]];
3826
3849
  }
3827
3850
  setMessages(historyCutoff);
3828
3851
  return runChatCompletionAndHandleFunctionCall(historyCutoff);
@@ -3939,16 +3962,16 @@ var InterruptRenderer = ({ event, result, render, resolve }) => {
3939
3962
  return render({ event, result, resolve });
3940
3963
  };
3941
3964
  function useLangGraphInterruptRender() {
3942
- const { langGraphInterruptAction, setLangGraphInterruptAction, agentSession } = useCopilotContext();
3965
+ const { langGraphInterruptAction, setLangGraphInterruptAction, agentSession, threadId } = useCopilotContext();
3943
3966
  const responseRef = import_react14.default.useRef();
3944
3967
  const resolveInterrupt = (0, import_react14.useCallback)(
3945
3968
  (response) => {
3946
3969
  responseRef.current = response;
3947
3970
  setTimeout(() => {
3948
- setLangGraphInterruptAction({ event: { response } });
3971
+ setLangGraphInterruptAction(threadId, { event: { response } });
3949
3972
  }, 0);
3950
3973
  },
3951
- [setLangGraphInterruptAction]
3974
+ [setLangGraphInterruptAction, threadId]
3952
3975
  );
3953
3976
  if (!langGraphInterruptAction || !langGraphInterruptAction.event || !langGraphInterruptAction.render)
3954
3977
  return null;
@@ -4859,7 +4882,12 @@ var import_react24 = require("react");
4859
4882
  var import_shared19 = require("@copilotkit/shared");
4860
4883
  function useLangGraphInterrupt(action, dependencies) {
4861
4884
  var _a;
4862
- 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);
4863
4891
  const { runChatCompletion } = useCopilotChat();
4864
4892
  const { addToast } = useToast();
4865
4893
  const actionId = (0, import_shared19.dataToUUID)(JSON.stringify(action), "lgAction");
@@ -4890,13 +4918,14 @@ function useLangGraphInterrupt(action, dependencies) {
4890
4918
  if (hasAction && isCurrentAction) {
4891
4919
  return;
4892
4920
  }
4893
- setLangGraphInterruptAction(__spreadProps(__spreadValues({}, action), { id: actionId }));
4921
+ setLangGraphInterruptAction(threadId, __spreadProps(__spreadValues({}, action), { id: actionId }));
4894
4922
  }, [
4895
4923
  action,
4896
4924
  hasAction,
4897
4925
  isCurrentAction,
4898
4926
  setLangGraphInterruptAction,
4899
4927
  removeLangGraphInterruptAction,
4928
+ threadId,
4900
4929
  ...dependencies || []
4901
4930
  ]);
4902
4931
  }