@copilotkit/react-core 1.10.0-next.7 → 1.10.0-next.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/{chunk-57MBVQPX.mjs → chunk-3RHHNUVV.mjs} +2 -2
  3. package/dist/{chunk-AC2GVFW6.mjs → chunk-6EKLRL7B.mjs} +2 -2
  4. package/dist/{chunk-EQQSE6KM.mjs → chunk-CLMDRYEN.mjs} +2 -2
  5. package/dist/{chunk-CZWJ4VJG.mjs → chunk-FTP6FDYS.mjs} +5 -5
  6. package/dist/{chunk-SMLWBM4N.mjs → chunk-GEKWHETN.mjs} +4 -4
  7. package/dist/{chunk-XGRBVNW2.mjs → chunk-GRCHDHC4.mjs} +11 -13
  8. package/dist/chunk-GRCHDHC4.mjs.map +1 -0
  9. package/dist/{chunk-OL3VRQKU.mjs → chunk-IN7GE4NO.mjs} +2 -2
  10. package/dist/{chunk-KTD5U4PK.mjs → chunk-K4HXT453.mjs} +3 -3
  11. package/dist/{chunk-X7ETNW3P.mjs → chunk-KH27ZS4Y.mjs} +7 -7
  12. package/dist/{chunk-4NR26FFD.mjs → chunk-MUDXTKXE.mjs} +43 -9
  13. package/dist/chunk-MUDXTKXE.mjs.map +1 -0
  14. package/dist/{chunk-5RPZ4T2V.mjs → chunk-MWHILKQH.mjs} +2 -2
  15. package/dist/{chunk-PH6RVMFU.mjs → chunk-OPRDTF4S.mjs} +4 -4
  16. package/dist/{chunk-TUPJR242.mjs → chunk-PHIMGB3K.mjs} +13 -15
  17. package/dist/chunk-PHIMGB3K.mjs.map +1 -0
  18. package/dist/{chunk-47GMU44Z.mjs → chunk-TEMLWRRT.mjs} +1 -4
  19. package/dist/{chunk-47GMU44Z.mjs.map → chunk-TEMLWRRT.mjs.map} +1 -1
  20. package/dist/{chunk-32JPCD6C.mjs → chunk-TTI4Z6GK.mjs} +16 -17
  21. package/dist/chunk-TTI4Z6GK.mjs.map +1 -0
  22. package/dist/{chunk-A3QJUCBZ.mjs → chunk-VH45SC6Z.mjs} +4 -4
  23. package/dist/{chunk-BJ7N5YF5.mjs → chunk-VSH4JSN3.mjs} +3 -3
  24. package/dist/{chunk-DCTJZ742.mjs → chunk-ZLQVRPDS.mjs} +5 -2
  25. package/dist/chunk-ZLQVRPDS.mjs.map +1 -0
  26. package/dist/{chunk-U6JSCZCE.mjs → chunk-ZTZJIDRJ.mjs} +4 -4
  27. package/dist/components/copilot-provider/copilot-messages.d.ts +17 -1
  28. package/dist/components/copilot-provider/copilot-messages.js +35 -7
  29. package/dist/components/copilot-provider/copilot-messages.js.map +1 -1
  30. package/dist/components/copilot-provider/copilot-messages.mjs +9 -5
  31. package/dist/components/copilot-provider/copilotkit-props.d.ts +1 -2
  32. package/dist/components/copilot-provider/copilotkit.d.ts +1 -2
  33. package/dist/components/copilot-provider/copilotkit.js +30 -9
  34. package/dist/components/copilot-provider/copilotkit.js.map +1 -1
  35. package/dist/components/copilot-provider/copilotkit.mjs +8 -8
  36. package/dist/components/copilot-provider/index.d.ts +1 -2
  37. package/dist/components/copilot-provider/index.js +30 -9
  38. package/dist/components/copilot-provider/index.js.map +1 -1
  39. package/dist/components/copilot-provider/index.mjs +8 -8
  40. package/dist/components/error-boundary/error-boundary.mjs +2 -2
  41. package/dist/components/index.d.ts +1 -2
  42. package/dist/components/index.js +30 -9
  43. package/dist/components/index.js.map +1 -1
  44. package/dist/components/index.mjs +8 -8
  45. package/dist/context/copilot-context.d.ts +1 -2
  46. package/dist/context/copilot-context.js +0 -3
  47. package/dist/context/copilot-context.js.map +1 -1
  48. package/dist/context/copilot-context.mjs +1 -1
  49. package/dist/context/copilot-messages-context.d.ts +11 -15
  50. package/dist/context/copilot-messages-context.js +4 -1
  51. package/dist/context/copilot-messages-context.js.map +1 -1
  52. package/dist/context/copilot-messages-context.mjs +1 -1
  53. package/dist/context/index.d.ts +2 -2
  54. package/dist/context/index.js +4 -4
  55. package/dist/context/index.js.map +1 -1
  56. package/dist/context/index.mjs +5 -5
  57. package/dist/{copilot-context-78fc727c.d.ts → copilot-context-256f9020.d.ts} +1 -21
  58. package/dist/hooks/index.d.ts +3 -3
  59. package/dist/hooks/index.js +133 -123
  60. package/dist/hooks/index.js.map +1 -1
  61. package/dist/hooks/index.mjs +32 -32
  62. package/dist/hooks/use-chat.d.ts +1 -2
  63. package/dist/hooks/use-chat.js +0 -3
  64. package/dist/hooks/use-chat.js.map +1 -1
  65. package/dist/hooks/use-chat.mjs +4 -4
  66. package/dist/hooks/use-coagent-state-render.js +0 -3
  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 +3 -4
  70. package/dist/hooks/use-coagent.js +85 -75
  71. package/dist/hooks/use-coagent.js.map +1 -1
  72. package/dist/hooks/use-coagent.mjs +14 -14
  73. package/dist/hooks/use-copilot-action.js +0 -3
  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 +0 -3
  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 +0 -3
  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-light.d.ts +3 -3
  83. package/dist/hooks/use-copilot-chat-light.js +5 -7
  84. package/dist/hooks/use-copilot-chat-light.js.map +1 -1
  85. package/dist/hooks/use-copilot-chat-light.mjs +14 -14
  86. package/dist/hooks/use-copilot-chat.d.ts +2 -2
  87. package/dist/hooks/use-copilot-chat.js +5 -7
  88. package/dist/hooks/use-copilot-chat.js.map +1 -1
  89. package/dist/hooks/use-copilot-chat.mjs +14 -14
  90. package/dist/hooks/use-copilot-chat_internal.d.ts +3 -3
  91. package/dist/hooks/use-copilot-chat_internal.js +5 -7
  92. package/dist/hooks/use-copilot-chat_internal.js.map +1 -1
  93. package/dist/hooks/use-copilot-chat_internal.mjs +13 -13
  94. package/dist/hooks/use-copilot-readable.js +0 -3
  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 +0 -3
  98. package/dist/hooks/use-langgraph-interrupt-render.js.map +1 -1
  99. package/dist/hooks/use-langgraph-interrupt-render.mjs +3 -3
  100. package/dist/hooks/use-langgraph-interrupt.d.ts +3 -4
  101. package/dist/hooks/use-langgraph-interrupt.js +5 -7
  102. package/dist/hooks/use-langgraph-interrupt.js.map +1 -1
  103. package/dist/hooks/use-langgraph-interrupt.mjs +14 -14
  104. package/dist/hooks/use-make-copilot-document-readable.js +0 -3
  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-08c43df1.d.ts +36 -0
  108. package/dist/index.d.ts +2 -2
  109. package/dist/index.js +38 -20
  110. package/dist/index.js.map +1 -1
  111. package/dist/index.mjs +37 -37
  112. package/dist/lib/copilot-task.d.ts +1 -2
  113. package/dist/lib/copilot-task.js.map +1 -1
  114. package/dist/lib/copilot-task.mjs +10 -10
  115. package/dist/lib/index.d.ts +1 -2
  116. package/dist/lib/index.js.map +1 -1
  117. package/dist/lib/index.mjs +10 -10
  118. package/dist/types/interrupt-action.d.ts +2 -3
  119. package/dist/utils/extract.d.ts +2 -2
  120. package/dist/utils/extract.js.map +1 -1
  121. package/dist/utils/extract.mjs +8 -8
  122. package/dist/utils/index.d.ts +3 -3
  123. package/dist/utils/index.js.map +1 -1
  124. package/dist/utils/index.mjs +8 -8
  125. package/dist/utils/suggestions.d.ts +2 -2
  126. package/dist/utils/suggestions.js.map +1 -1
  127. package/dist/utils/suggestions.mjs +8 -8
  128. package/package.json +3 -3
  129. package/src/components/copilot-provider/copilot-messages.tsx +57 -1
  130. package/src/components/copilot-provider/copilotkit.tsx +4 -5
  131. package/src/context/copilot-context.tsx +0 -5
  132. package/src/context/copilot-messages-context.tsx +7 -1
  133. package/src/hooks/__tests__/use-coagent-config.test.ts +7 -0
  134. package/src/hooks/use-coagent.ts +11 -8
  135. package/src/hooks/use-copilot-chat_internal.ts +2 -3
  136. package/dist/chunk-32JPCD6C.mjs.map +0 -1
  137. package/dist/chunk-4NR26FFD.mjs.map +0 -1
  138. package/dist/chunk-DCTJZ742.mjs.map +0 -1
  139. package/dist/chunk-TUPJR242.mjs.map +0 -1
  140. package/dist/chunk-XGRBVNW2.mjs.map +0 -1
  141. /package/dist/{chunk-57MBVQPX.mjs.map → chunk-3RHHNUVV.mjs.map} +0 -0
  142. /package/dist/{chunk-AC2GVFW6.mjs.map → chunk-6EKLRL7B.mjs.map} +0 -0
  143. /package/dist/{chunk-EQQSE6KM.mjs.map → chunk-CLMDRYEN.mjs.map} +0 -0
  144. /package/dist/{chunk-CZWJ4VJG.mjs.map → chunk-FTP6FDYS.mjs.map} +0 -0
  145. /package/dist/{chunk-SMLWBM4N.mjs.map → chunk-GEKWHETN.mjs.map} +0 -0
  146. /package/dist/{chunk-OL3VRQKU.mjs.map → chunk-IN7GE4NO.mjs.map} +0 -0
  147. /package/dist/{chunk-KTD5U4PK.mjs.map → chunk-K4HXT453.mjs.map} +0 -0
  148. /package/dist/{chunk-X7ETNW3P.mjs.map → chunk-KH27ZS4Y.mjs.map} +0 -0
  149. /package/dist/{chunk-5RPZ4T2V.mjs.map → chunk-MWHILKQH.mjs.map} +0 -0
  150. /package/dist/{chunk-PH6RVMFU.mjs.map → chunk-OPRDTF4S.mjs.map} +0 -0
  151. /package/dist/{chunk-A3QJUCBZ.mjs.map → chunk-VH45SC6Z.mjs.map} +0 -0
  152. /package/dist/{chunk-BJ7N5YF5.mjs.map → chunk-VSH4JSN3.mjs.map} +0 -0
  153. /package/dist/{chunk-U6JSCZCE.mjs.map → chunk-ZTZJIDRJ.mjs.map} +0 -0
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  useLangGraphInterrupt
3
- } from "../chunk-CZWJ4VJG.mjs";
4
- import "../chunk-XGRBVNW2.mjs";
5
- import "../chunk-OL3VRQKU.mjs";
6
- import "../chunk-YPSGKPDA.mjs";
7
- import "../chunk-TUPJR242.mjs";
8
- import "../chunk-4NR26FFD.mjs";
9
- import "../chunk-U6JSCZCE.mjs";
3
+ } from "../chunk-FTP6FDYS.mjs";
4
+ import "../chunk-GRCHDHC4.mjs";
5
+ import "../chunk-IN7GE4NO.mjs";
6
+ import "../chunk-KH27ZS4Y.mjs";
7
+ import "../chunk-4CEQJ2X6.mjs";
8
+ import "../chunk-PHIMGB3K.mjs";
9
+ import "../chunk-MUDXTKXE.mjs";
10
+ import "../chunk-ZTZJIDRJ.mjs";
10
11
  import "../chunk-2IDV5OHF.mjs";
11
12
  import "../chunk-PMAFHQ7P.mjs";
12
13
  import "../chunk-5FHSUKQL.mjs";
13
14
  import "../chunk-RKTVJRK7.mjs";
14
- import "../chunk-DCTJZ742.mjs";
15
- import "../chunk-AWFAFFO5.mjs";
16
- import "../chunk-X7ETNW3P.mjs";
17
- import "../chunk-4CEQJ2X6.mjs";
18
- import "../chunk-N4WEHORG.mjs";
19
- import "../chunk-O7ARI5CV.mjs";
20
15
  import "../chunk-FAUNHSQU.mjs";
21
16
  import "../chunk-ICIK2BSB.mjs";
22
- import "../chunk-47GMU44Z.mjs";
17
+ import "../chunk-N4WEHORG.mjs";
18
+ import "../chunk-O7ARI5CV.mjs";
23
19
  import "../chunk-EFL5OBKN.mjs";
20
+ import "../chunk-AWFAFFO5.mjs";
21
+ import "../chunk-YPSGKPDA.mjs";
22
+ import "../chunk-TEMLWRRT.mjs";
23
+ import "../chunk-ZLQVRPDS.mjs";
24
24
  import "../chunk-SKC7AJIV.mjs";
25
25
  export {
26
26
  useLangGraphInterrupt
@@ -130,11 +130,8 @@ var emptyCopilotContext = {
130
130
  setLangGraphInterruptAction: () => null,
131
131
  removeLangGraphInterruptAction: () => null,
132
132
  onError: void 0,
133
- suggestions: [],
134
133
  bannerError: null,
135
134
  setBannerError: () => {
136
- },
137
- setSuggestions: () => {
138
135
  }
139
136
  };
140
137
  var CopilotContext = import_react.default.createContext(emptyCopilotContext);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/use-make-copilot-document-readable.ts","../../src/context/copilot-context.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useCopilotContext } from \"../context/copilot-context\";\nimport { DocumentPointer } from \"../types\";\n\n/**\n * Makes a document readable by Copilot.\n * @param document The document to make readable.\n * @param categories The categories to associate with the document.\n * @param dependencies The dependencies to use for the effect.\n * @returns The id of the document.\n */\nexport function useMakeCopilotDocumentReadable(\n document: DocumentPointer,\n categories?: string[],\n dependencies: any[] = [],\n): string | undefined {\n const { addDocumentContext, removeDocumentContext } = useCopilotContext();\n const idRef = useRef<string>();\n\n useEffect(() => {\n const id = addDocumentContext(document, categories);\n idRef.current = id;\n\n return () => {\n removeDocumentContext(id);\n };\n }, [addDocumentContext, removeDocumentContext, ...dependencies]);\n\n return idRef.current;\n}\n","import {\n CopilotCloudConfig,\n FunctionCallHandler,\n CopilotErrorHandler,\n CopilotKitError,\n} from \"@copilotkit/shared\";\nimport {\n ActionRenderProps,\n CatchAllActionRenderProps,\n FrontendAction,\n} from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId, Tree } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\nimport { CoAgentStateRender, CoAgentStateRenderProps } from \"../types/coagent-action\";\nimport { CoagentState } from \"../types/coagent-state\";\nimport {\n CopilotRuntimeClient,\n ExtensionsInput,\n ForwardedParametersInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { Agent } from \"@copilotkit/runtime-client-gql\";\nimport {\n LangGraphInterruptAction,\n LangGraphInterruptActionSetter,\n} from \"../types/interrupt-action\";\nimport { SuggestionItem } from \"../utils/suggestions\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n\n /**\n * Optional configuration for connecting to Model Context Protocol (MCP) servers.\n * This is typically derived from the CopilotKitProps and used internally.\n * @experimental\n */\n mcpServers?: Array<{ endpoint: string; apiKey?: string }>;\n}\n\nexport type InChatRenderFunction<TProps = ActionRenderProps<any> | CatchAllActionRenderProps<any>> =\n (props: TProps) => string | JSX.Element;\nexport type CoagentInChatRenderFunction = (\n props: CoAgentStateRenderProps<any>,\n) => string | JSX.Element | undefined | null;\n\nexport interface ChatComponentsCache {\n actions: Record<string, InChatRenderFunction | string>;\n coAgentStateRenders: Record<string, CoagentInChatRenderFunction | string>;\n}\n\nexport interface AgentSession {\n agentName: string;\n threadId?: string;\n nodeName?: string;\n}\n\nexport interface AuthState {\n status: \"authenticated\" | \"unauthenticated\";\n authHeaders: Record<string, string>;\n userId?: string;\n metadata?: Record<string, any>;\n}\n\nexport type ActionName = string;\nexport type ContextTree = Tree;\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n\n // coagent actions\n coAgentStateRenders: Record<string, CoAgentStateRender<any>>;\n setCoAgentStateRender: (id: string, stateRender: CoAgentStateRender<any>) => void;\n removeCoAgentStateRender: (id: string) => void;\n\n chatComponentsCache: React.RefObject<ChatComponentsCache>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getAllContext: () => Tree;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n additionalInstructions?: string[];\n setAdditionalInstructions: React.Dispatch<React.SetStateAction<string[]>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n\n showDevConsole: boolean;\n\n // agents\n coagentStates: Record<string, CoagentState>;\n setCoagentStates: React.Dispatch<React.SetStateAction<Record<string, CoagentState>>>;\n coagentStatesRef: React.RefObject<Record<string, CoagentState>>;\n setCoagentStatesWithRef: (\n value:\n | Record<string, CoagentState>\n | ((prev: Record<string, CoagentState>) => Record<string, CoagentState>),\n ) => void;\n\n agentSession: AgentSession | null;\n setAgentSession: React.Dispatch<React.SetStateAction<AgentSession | null>>;\n\n agentLock: string | null;\n\n threadId: string;\n setThreadId: React.Dispatch<React.SetStateAction<string>>;\n\n runId: string | null;\n setRunId: React.Dispatch<React.SetStateAction<string | null>>;\n\n // The chat abort controller can be used to stop generation globally,\n // i.e. when using `stop()` from `useChat`\n chatAbortControllerRef: React.MutableRefObject<AbortController | null>;\n\n // runtime\n runtimeClient: CopilotRuntimeClient;\n\n /**\n * The forwarded parameters to use for the task.\n */\n forwardedParameters?: Partial<Pick<ForwardedParametersInput, \"temperature\">>;\n availableAgents: Agent[];\n\n /**\n * The auth states for the CopilotKit.\n */\n authStates_c?: Record<ActionName, AuthState>;\n setAuthStates_c?: React.Dispatch<React.SetStateAction<Record<ActionName, AuthState>>>;\n\n /**\n * The auth config for the CopilotKit.\n */\n authConfig_c?: {\n SignInComponent: React.ComponentType<{\n onSignInComplete: (authState: AuthState) => void;\n }>;\n };\n\n extensions: ExtensionsInput;\n setExtensions: React.Dispatch<React.SetStateAction<ExtensionsInput>>;\n langGraphInterruptAction: LangGraphInterruptAction | null;\n setLangGraphInterruptAction: LangGraphInterruptActionSetter;\n removeLangGraphInterruptAction: () => void;\n\n /**\n * Optional trace handler for comprehensive debugging and observability.\n */\n onError?: CopilotErrorHandler;\n // suggestions state\n suggestions: SuggestionItem[];\n\n // banner error state\n bannerError: CopilotKitError | null;\n setBannerError: React.Dispatch<React.SetStateAction<CopilotKitError | null>>;\n setSuggestions: React.Dispatch<React.SetStateAction<SuggestionItem[]>>;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n coAgentStateRenders: {},\n setCoAgentStateRender: () => {},\n removeCoAgentStateRender: () => {},\n\n chatComponentsCache: { current: { actions: {}, coAgentStateRenders: {} } },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n getAllContext: () => [],\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n additionalInstructions: [],\n setAdditionalInstructions: () => returnAndThrowInDebug([]),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n runtimeClient: {} as any,\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n showDevConsole: false,\n coagentStates: {},\n setCoagentStates: () => {},\n coagentStatesRef: { current: {} },\n setCoagentStatesWithRef: () => {},\n agentSession: null,\n setAgentSession: () => {},\n forwardedParameters: {},\n agentLock: null,\n threadId: \"\",\n setThreadId: () => {},\n runId: null,\n setRunId: () => {},\n chatAbortControllerRef: { current: null },\n availableAgents: [],\n extensions: {},\n setExtensions: () => {},\n langGraphInterruptAction: null,\n setLangGraphInterruptAction: () => null,\n removeLangGraphInterruptAction: () => null,\n onError: undefined,\n suggestions: [],\n bannerError: null,\n setBannerError: () => {},\n setSuggestions: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n const context = React.useContext(CopilotContext);\n if (context === emptyCopilotContext) {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n return context;\n}\n\nfunction returnAndThrowInDebug<T>(_value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n}\n"],"mappings":"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","names":["import_react","React"]}
1
+ {"version":3,"sources":["../../src/hooks/use-make-copilot-document-readable.ts","../../src/context/copilot-context.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useCopilotContext } from \"../context/copilot-context\";\nimport { DocumentPointer } from \"../types\";\n\n/**\n * Makes a document readable by Copilot.\n * @param document The document to make readable.\n * @param categories The categories to associate with the document.\n * @param dependencies The dependencies to use for the effect.\n * @returns The id of the document.\n */\nexport function useMakeCopilotDocumentReadable(\n document: DocumentPointer,\n categories?: string[],\n dependencies: any[] = [],\n): string | undefined {\n const { addDocumentContext, removeDocumentContext } = useCopilotContext();\n const idRef = useRef<string>();\n\n useEffect(() => {\n const id = addDocumentContext(document, categories);\n idRef.current = id;\n\n return () => {\n removeDocumentContext(id);\n };\n }, [addDocumentContext, removeDocumentContext, ...dependencies]);\n\n return idRef.current;\n}\n","import {\n CopilotCloudConfig,\n FunctionCallHandler,\n CopilotErrorHandler,\n CopilotKitError,\n} from \"@copilotkit/shared\";\nimport {\n ActionRenderProps,\n CatchAllActionRenderProps,\n FrontendAction,\n} from \"../types/frontend-action\";\nimport React from \"react\";\nimport { TreeNodeId, Tree } from \"../hooks/use-tree\";\nimport { DocumentPointer } from \"../types\";\nimport { CopilotChatSuggestionConfiguration } from \"../types/chat-suggestion-configuration\";\nimport { CoAgentStateRender, CoAgentStateRenderProps } from \"../types/coagent-action\";\nimport { CoagentState } from \"../types/coagent-state\";\nimport {\n CopilotRuntimeClient,\n ExtensionsInput,\n ForwardedParametersInput,\n} from \"@copilotkit/runtime-client-gql\";\nimport { Agent } from \"@copilotkit/runtime-client-gql\";\nimport {\n LangGraphInterruptAction,\n LangGraphInterruptActionSetter,\n} from \"../types/interrupt-action\";\nimport { SuggestionItem } from \"../utils/suggestions\";\n\n/**\n * Interface for the configuration of the Copilot API.\n */\nexport interface CopilotApiConfig {\n /**\n * The public API key for Copilot Cloud.\n */\n publicApiKey?: string;\n\n /**\n * The configuration for Copilot Cloud.\n */\n cloud?: CopilotCloudConfig;\n\n /**\n * The endpoint for the chat API.\n */\n chatApiEndpoint: string;\n\n /**\n * The endpoint for the Copilot transcribe audio service.\n */\n transcribeAudioUrl?: string;\n\n /**\n * The endpoint for the Copilot text to speech service.\n */\n textToSpeechUrl?: string;\n\n /**\n * additional headers to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'Authorization': 'Bearer your_token_here'\n * }\n * ```\n */\n headers: Record<string, string>;\n\n /**\n * Custom properties to be sent with the request\n * @default {}\n * @example\n * ```\n * {\n * 'user_id': 'user_id'\n * }\n * ```\n */\n properties?: Record<string, any>;\n\n /**\n * Indicates whether the user agent should send or receive cookies from the other domain\n * in the case of cross-origin requests.\n */\n credentials?: RequestCredentials;\n\n /**\n * Optional configuration for connecting to Model Context Protocol (MCP) servers.\n * This is typically derived from the CopilotKitProps and used internally.\n * @experimental\n */\n mcpServers?: Array<{ endpoint: string; apiKey?: string }>;\n}\n\nexport type InChatRenderFunction<TProps = ActionRenderProps<any> | CatchAllActionRenderProps<any>> =\n (props: TProps) => string | JSX.Element;\nexport type CoagentInChatRenderFunction = (\n props: CoAgentStateRenderProps<any>,\n) => string | JSX.Element | undefined | null;\n\nexport interface ChatComponentsCache {\n actions: Record<string, InChatRenderFunction | string>;\n coAgentStateRenders: Record<string, CoagentInChatRenderFunction | string>;\n}\n\nexport interface AgentSession {\n agentName: string;\n threadId?: string;\n nodeName?: string;\n}\n\nexport interface AuthState {\n status: \"authenticated\" | \"unauthenticated\";\n authHeaders: Record<string, string>;\n userId?: string;\n metadata?: Record<string, any>;\n}\n\nexport type ActionName = string;\nexport type ContextTree = Tree;\n\nexport interface CopilotContextParams {\n // function-calling\n actions: Record<string, FrontendAction<any>>;\n setAction: (id: string, action: FrontendAction<any>) => void;\n removeAction: (id: string) => void;\n\n // coagent actions\n coAgentStateRenders: Record<string, CoAgentStateRender<any>>;\n setCoAgentStateRender: (id: string, stateRender: CoAgentStateRender<any>) => void;\n removeCoAgentStateRender: (id: string) => void;\n\n chatComponentsCache: React.RefObject<ChatComponentsCache>;\n\n getFunctionCallHandler: (\n customEntryPoints?: Record<string, FrontendAction<any>>,\n ) => FunctionCallHandler;\n\n // text context\n addContext: (context: string, parentId?: string, categories?: string[]) => TreeNodeId;\n removeContext: (id: TreeNodeId) => void;\n getAllContext: () => Tree;\n getContextString: (documents: DocumentPointer[], categories: string[]) => string;\n\n // document context\n addDocumentContext: (documentPointer: DocumentPointer, categories?: string[]) => TreeNodeId;\n removeDocumentContext: (documentId: string) => void;\n getDocumentsContext: (categories: string[]) => DocumentPointer[];\n\n isLoading: boolean;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n\n chatSuggestionConfiguration: { [key: string]: CopilotChatSuggestionConfiguration };\n addChatSuggestionConfiguration: (\n id: string,\n suggestion: CopilotChatSuggestionConfiguration,\n ) => void;\n removeChatSuggestionConfiguration: (id: string) => void;\n\n chatInstructions: string;\n setChatInstructions: React.Dispatch<React.SetStateAction<string>>;\n\n additionalInstructions?: string[];\n setAdditionalInstructions: React.Dispatch<React.SetStateAction<string[]>>;\n\n // api endpoints\n copilotApiConfig: CopilotApiConfig;\n\n showDevConsole: boolean;\n\n // agents\n coagentStates: Record<string, CoagentState>;\n setCoagentStates: React.Dispatch<React.SetStateAction<Record<string, CoagentState>>>;\n coagentStatesRef: React.RefObject<Record<string, CoagentState>>;\n setCoagentStatesWithRef: (\n value:\n | Record<string, CoagentState>\n | ((prev: Record<string, CoagentState>) => Record<string, CoagentState>),\n ) => void;\n\n agentSession: AgentSession | null;\n setAgentSession: React.Dispatch<React.SetStateAction<AgentSession | null>>;\n\n agentLock: string | null;\n\n threadId: string;\n setThreadId: React.Dispatch<React.SetStateAction<string>>;\n\n runId: string | null;\n setRunId: React.Dispatch<React.SetStateAction<string | null>>;\n\n // The chat abort controller can be used to stop generation globally,\n // i.e. when using `stop()` from `useChat`\n chatAbortControllerRef: React.MutableRefObject<AbortController | null>;\n\n // runtime\n runtimeClient: CopilotRuntimeClient;\n\n /**\n * The forwarded parameters to use for the task.\n */\n forwardedParameters?: Partial<Pick<ForwardedParametersInput, \"temperature\">>;\n availableAgents: Agent[];\n\n /**\n * The auth states for the CopilotKit.\n */\n authStates_c?: Record<ActionName, AuthState>;\n setAuthStates_c?: React.Dispatch<React.SetStateAction<Record<ActionName, AuthState>>>;\n\n /**\n * The auth config for the CopilotKit.\n */\n authConfig_c?: {\n SignInComponent: React.ComponentType<{\n onSignInComplete: (authState: AuthState) => void;\n }>;\n };\n\n extensions: ExtensionsInput;\n setExtensions: React.Dispatch<React.SetStateAction<ExtensionsInput>>;\n langGraphInterruptAction: LangGraphInterruptAction | null;\n setLangGraphInterruptAction: LangGraphInterruptActionSetter;\n removeLangGraphInterruptAction: () => void;\n\n /**\n * Optional trace handler for comprehensive debugging and observability.\n */\n onError?: CopilotErrorHandler;\n\n // banner error state\n bannerError: CopilotKitError | null;\n setBannerError: React.Dispatch<React.SetStateAction<CopilotKitError | null>>;\n}\n\nconst emptyCopilotContext: CopilotContextParams = {\n actions: {},\n setAction: () => {},\n removeAction: () => {},\n\n coAgentStateRenders: {},\n setCoAgentStateRender: () => {},\n removeCoAgentStateRender: () => {},\n\n chatComponentsCache: { current: { actions: {}, coAgentStateRenders: {} } },\n getContextString: (documents: DocumentPointer[], categories: string[]) =>\n returnAndThrowInDebug(\"\"),\n addContext: () => \"\",\n removeContext: () => {},\n getAllContext: () => [],\n\n getFunctionCallHandler: () => returnAndThrowInDebug(async () => {}),\n\n isLoading: false,\n setIsLoading: () => returnAndThrowInDebug(false),\n\n chatInstructions: \"\",\n setChatInstructions: () => returnAndThrowInDebug(\"\"),\n\n additionalInstructions: [],\n setAdditionalInstructions: () => returnAndThrowInDebug([]),\n\n getDocumentsContext: (categories: string[]) => returnAndThrowInDebug([]),\n addDocumentContext: () => returnAndThrowInDebug(\"\"),\n removeDocumentContext: () => {},\n runtimeClient: {} as any,\n\n copilotApiConfig: new (class implements CopilotApiConfig {\n get chatApiEndpoint(): string {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n\n get headers(): Record<string, string> {\n return {};\n }\n get body(): Record<string, any> {\n return {};\n }\n })(),\n\n chatSuggestionConfiguration: {},\n addChatSuggestionConfiguration: () => {},\n removeChatSuggestionConfiguration: () => {},\n showDevConsole: false,\n coagentStates: {},\n setCoagentStates: () => {},\n coagentStatesRef: { current: {} },\n setCoagentStatesWithRef: () => {},\n agentSession: null,\n setAgentSession: () => {},\n forwardedParameters: {},\n agentLock: null,\n threadId: \"\",\n setThreadId: () => {},\n runId: null,\n setRunId: () => {},\n chatAbortControllerRef: { current: null },\n availableAgents: [],\n extensions: {},\n setExtensions: () => {},\n langGraphInterruptAction: null,\n setLangGraphInterruptAction: () => null,\n removeLangGraphInterruptAction: () => null,\n onError: undefined,\n bannerError: null,\n setBannerError: () => {},\n};\n\nexport const CopilotContext = React.createContext<CopilotContextParams>(emptyCopilotContext);\n\nexport function useCopilotContext(): CopilotContextParams {\n const context = React.useContext(CopilotContext);\n if (context === emptyCopilotContext) {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n }\n return context;\n}\n\nfunction returnAndThrowInDebug<T>(_value: T): T {\n throw new Error(\"Remember to wrap your app in a `<CopilotKit> {...} </CopilotKit>` !!!\");\n}\n"],"mappings":"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","names":["import_react","React"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  useMakeCopilotDocumentReadable
3
- } from "../chunk-EQQSE6KM.mjs";
4
- import "../chunk-47GMU44Z.mjs";
3
+ } from "../chunk-CLMDRYEN.mjs";
4
+ import "../chunk-TEMLWRRT.mjs";
5
5
  import "../chunk-SKC7AJIV.mjs";
6
6
  export {
7
7
  useMakeCopilotDocumentReadable
@@ -0,0 +1,36 @@
1
+ import { a as CopilotContextParams } from './copilot-context-256f9020.js';
2
+ import { Message } from '@copilotkit/runtime-client-gql';
3
+ import React$1 from 'react';
4
+ import { CopilotChatSuggestionConfiguration } from './types/chat-suggestion-configuration.js';
5
+
6
+ /**
7
+ * Suggestions utility functions for CopilotKit
8
+ *
9
+ * This module handles the generation of chat suggestions with optimized error handling
10
+ * and streaming validation to prevent infinite retry loops and console spam.
11
+ */
12
+
13
+ interface SuggestionItem {
14
+ title: string;
15
+ message: string;
16
+ partial?: boolean;
17
+ className?: string;
18
+ }
19
+ declare const reloadSuggestions: (context: CopilotContextParams & CopilotMessagesContextParams, chatSuggestionConfiguration: {
20
+ [key: string]: CopilotChatSuggestionConfiguration;
21
+ }, setCurrentSuggestions: (suggestions: SuggestionItem[]) => void, abortControllerRef: React.MutableRefObject<AbortController | null>) => Promise<void>;
22
+
23
+ /**
24
+ * An internal context to separate the messages state (which is constantly changing) from the rest of CopilotKit context
25
+ */
26
+
27
+ interface CopilotMessagesContextParams {
28
+ messages: Message[];
29
+ setMessages: React$1.Dispatch<React$1.SetStateAction<Message[]>>;
30
+ suggestions: SuggestionItem[];
31
+ setSuggestions: React$1.Dispatch<React$1.SetStateAction<SuggestionItem[]>>;
32
+ }
33
+ declare const CopilotMessagesContext: React$1.Context<CopilotMessagesContextParams>;
34
+ declare function useCopilotMessagesContext(): CopilotMessagesContextParams;
35
+
36
+ export { CopilotMessagesContext as C, SuggestionItem as S, CopilotMessagesContextParams as a, reloadSuggestions as r, useCopilotMessagesContext as u };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { CopilotKit, defaultCopilotContextCategories } from './components/copilot-provider/copilotkit.js';
2
2
  export { CopilotKitProps } from './components/copilot-provider/copilotkit-props.js';
3
- export { b as CoagentInChatRenderFunction, c as CopilotApiConfig, C as CopilotContext, a as CopilotContextParams, S as SuggestionItem, r as reloadSuggestions, u as useCopilotContext } from './copilot-context-78fc727c.js';
4
- export { CopilotMessagesContext, CopilotMessagesContextParams, useCopilotMessagesContext } from './context/copilot-messages-context.js';
3
+ export { b as CoagentInChatRenderFunction, c as CopilotApiConfig, C as CopilotContext, a as CopilotContextParams, u as useCopilotContext } from './copilot-context-256f9020.js';
4
+ export { C as CopilotMessagesContext, a as CopilotMessagesContextParams, S as SuggestionItem, r as reloadSuggestions, u as useCopilotMessagesContext } from './index-08c43df1.js';
5
5
  export { useCopilotChat } from './hooks/use-copilot-chat.js';
6
6
  export { UseCopilotChatLightOptions, UseCopilotChatLightReturn, useCopilotChatLight } from './hooks/use-copilot-chat-light.js';
7
7
  export { UseCopilotChatOptions, UseCopilotChatReturn, useCopilotChat as useCopilotChatInternal } from './hooks/use-copilot-chat_internal.js';
package/dist/index.js CHANGED
@@ -189,11 +189,8 @@ var emptyCopilotContext = {
189
189
  setLangGraphInterruptAction: () => null,
190
190
  removeLangGraphInterruptAction: () => null,
191
191
  onError: void 0,
192
- suggestions: [],
193
192
  bannerError: null,
194
193
  setBannerError: () => {
195
- },
196
- setSuggestions: () => {
197
194
  }
198
195
  };
199
196
  var CopilotContext = import_react.default.createContext(emptyCopilotContext);
@@ -419,7 +416,10 @@ var import_react6 = require("react");
419
416
  var import_react4 = __toESM(require("react"));
420
417
  var emptyCopilotContext2 = {
421
418
  messages: [],
422
- setMessages: () => []
419
+ setMessages: () => [],
420
+ // suggestions state
421
+ suggestions: [],
422
+ setSuggestions: () => []
423
423
  };
424
424
  var CopilotMessagesContext = import_react4.default.createContext(emptyCopilotContext2);
425
425
  function useCopilotMessagesContext() {
@@ -751,11 +751,29 @@ function shouldShowDevConsole(showDevConsole) {
751
751
  // src/components/copilot-provider/copilot-messages.tsx
752
752
  var import_shared4 = require("@copilotkit/shared");
753
753
  var import_jsx_runtime2 = require("react/jsx-runtime");
754
+ var MessagesTapContext = (0, import_react6.createContext)(null);
755
+ function useMessagesTap() {
756
+ const tap = (0, import_react6.useContext)(MessagesTapContext);
757
+ if (!tap)
758
+ throw new Error("useMessagesTap must be used inside <MessagesTapProvider>");
759
+ return tap;
760
+ }
761
+ function MessagesTapProvider({ children }) {
762
+ const messagesRef = (0, import_react6.useRef)([]);
763
+ const tapRef = (0, import_react6.useRef)({
764
+ getMessagesFromTap: () => messagesRef.current,
765
+ updateTapMessages: (messages) => {
766
+ messagesRef.current = messages;
767
+ }
768
+ });
769
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(MessagesTapContext.Provider, { value: tapRef.current, children });
770
+ }
754
771
  function CopilotMessages({ children }) {
755
772
  const [messages, setMessages] = (0, import_react6.useState)([]);
756
773
  const lastLoadedThreadId = (0, import_react6.useRef)();
757
774
  const lastLoadedAgentName = (0, import_react6.useRef)();
758
775
  const lastLoadedMessages = (0, import_react6.useRef)();
776
+ const { updateTapMessages } = useMessagesTap();
759
777
  const { threadId, agentSession, runtimeClient, showDevConsole, onError, copilotApiConfig } = useCopilotContext();
760
778
  const { setBannerError } = useToast();
761
779
  const traceUIError = (0, import_react6.useCallback)(
@@ -892,13 +910,19 @@ function CopilotMessages({ children }) {
892
910
  });
893
911
  void fetchMessages();
894
912
  }, [threadId, agentSession == null ? void 0 : agentSession.agentName]);
913
+ (0, import_react6.useEffect)(() => {
914
+ updateTapMessages(messages);
915
+ }, [messages, updateTapMessages]);
895
916
  const memoizedChildren = (0, import_react6.useMemo)(() => children, [children]);
917
+ const [suggestions, setSuggestions] = (0, import_react6.useState)([]);
896
918
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
897
919
  CopilotMessagesContext.Provider,
898
920
  {
899
921
  value: {
900
922
  messages,
901
- setMessages
923
+ setMessages,
924
+ suggestions,
925
+ setSuggestions
902
926
  },
903
927
  children: memoizedChildren
904
928
  }
@@ -1990,7 +2014,6 @@ ${nonDocumentStrings}`;
1990
2014
  }, []);
1991
2015
  const memoizedChildren = (0, import_react10.useMemo)(() => children, [children]);
1992
2016
  const [bannerError, setBannerError] = (0, import_react10.useState)(null);
1993
- const [suggestions, setSuggestions] = (0, import_react10.useState)([]);
1994
2017
  const agentLock = (0, import_react10.useMemo)(() => {
1995
2018
  var _a2;
1996
2019
  return (_a2 = props.agent) != null ? _a2 : null;
@@ -2080,13 +2103,11 @@ ${nonDocumentStrings}`;
2080
2103
  setLangGraphInterruptAction,
2081
2104
  removeLangGraphInterruptAction,
2082
2105
  onError: props.onError,
2083
- suggestions,
2084
- setSuggestions,
2085
2106
  bannerError,
2086
2107
  setBannerError
2087
2108
  },
2088
2109
  children: [
2089
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CopilotMessages, { children: memoizedChildren }),
2110
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(MessagesTapProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(CopilotMessages, { children: memoizedChildren }) }),
2090
2111
  bannerError && showDevConsole && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
2091
2112
  UsageBanner,
2092
2113
  {
@@ -2907,11 +2928,9 @@ function useCopilotChat(options = {}) {
2907
2928
  langGraphInterruptAction,
2908
2929
  setLangGraphInterruptAction,
2909
2930
  chatSuggestionConfiguration,
2910
- suggestions,
2911
- setSuggestions,
2912
2931
  runtimeClient
2913
2932
  } = useCopilotContext();
2914
- const { messages, setMessages } = useCopilotMessagesContext();
2933
+ const { messages, setMessages, suggestions, setSuggestions } = useCopilotMessagesContext();
2915
2934
  const [mcpServers, setLocalMcpServers] = (0, import_react13.useState)([]);
2916
2935
  const suggestionsAbortControllerRef = (0, import_react13.useRef)(null);
2917
2936
  const isLoadingSuggestionsRef = (0, import_react13.useRef)(false);
@@ -3477,8 +3496,8 @@ function useCopilotReadable({
3477
3496
  var import_react19 = require("react");
3478
3497
  var import_shared17 = require("@copilotkit/shared");
3479
3498
  function useCoAgent(options) {
3480
- const generalContext = useCopilotContext();
3481
- const { availableAgents } = generalContext;
3499
+ const context = useCopilotContext();
3500
+ const { availableAgents } = context;
3482
3501
  const { setBannerError } = useToast();
3483
3502
  const lastLoadedThreadId = (0, import_react19.useRef)();
3484
3503
  const lastLoadedState = (0, import_react19.useRef)();
@@ -3494,8 +3513,7 @@ function useCoAgent(options) {
3494
3513
  setBannerError(agentError);
3495
3514
  }
3496
3515
  }, [availableAgents]);
3497
- const messagesContext = useCopilotMessagesContext();
3498
- const context = __spreadValues(__spreadValues({}, generalContext), messagesContext);
3516
+ const { getMessagesFromTap } = useMessagesTap();
3499
3517
  const { coagentStates, coagentStatesRef, setCoagentStatesWithRef, threadId, copilotApiConfig } = context;
3500
3518
  const { appendMessage, runChatCompletion } = useCopilotChat();
3501
3519
  const headers = __spreadValues({}, copilotApiConfig.headers || {});
@@ -3581,7 +3599,7 @@ function useCoAgent(options) {
3581
3599
  }, [JSON.stringify(options.config), JSON.stringify(options.configurable)]);
3582
3600
  const runAgentCallback = useAsyncCallback(
3583
3601
  (hint) => __async(this, null, function* () {
3584
- yield runAgent(name, context, appendMessage, runChatCompletion, hint);
3602
+ yield runAgent(name, context, getMessagesFromTap(), appendMessage, runChatCompletion, hint);
3585
3603
  }),
3586
3604
  [name, context, appendMessage, runChatCompletion]
3587
3605
  );
@@ -3625,7 +3643,7 @@ function stopAgent(name, context) {
3625
3643
  console.warn(`No agent session found for ${name}`);
3626
3644
  }
3627
3645
  }
3628
- function runAgent(name, context, appendMessage, runChatCompletion, hint) {
3646
+ function runAgent(name, context, messages, appendMessage, runChatCompletion, hint) {
3629
3647
  return __async(this, null, function* () {
3630
3648
  var _a, _b;
3631
3649
  const { agentSession, setAgentSession } = context;
@@ -3635,8 +3653,8 @@ function runAgent(name, context, appendMessage, runChatCompletion, hint) {
3635
3653
  });
3636
3654
  }
3637
3655
  let previousState = null;
3638
- for (let i = context.messages.length - 1; i >= 0; i--) {
3639
- const message = context.messages[i];
3656
+ for (let i = messages.length - 1; i >= 0; i--) {
3657
+ const message = messages[i];
3640
3658
  if (message.isAgentStateMessage() && message.agentName === name) {
3641
3659
  previousState = message.state;
3642
3660
  }