@yourgpt/copilot-sdk 2.0.1 → 2.0.2-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/README.md +42 -0
  2. package/dist/{ThreadManager-JT0sqSSD.d.ts → ThreadManager-Dkp_eLty.d.ts} +1 -1
  3. package/dist/{ThreadManager-CUq5Ocu2.d.cts → ThreadManager-LfFRhr4e.d.cts} +1 -1
  4. package/dist/anthropic-6F5GRE3B.js +4 -0
  5. package/dist/anthropic-6F5GRE3B.js.map +1 -0
  6. package/dist/anthropic-DGalr_Fw.d.cts +17 -0
  7. package/dist/anthropic-DkCEDYOt.d.ts +17 -0
  8. package/dist/anthropic-NMTRABEH.cjs +21 -0
  9. package/dist/anthropic-NMTRABEH.cjs.map +1 -0
  10. package/dist/brave-DdnWb7Gb.d.cts +17 -0
  11. package/dist/brave-DsI9n7Wr.d.ts +17 -0
  12. package/dist/brave-OYKCOZEM.cjs +21 -0
  13. package/dist/brave-OYKCOZEM.cjs.map +1 -0
  14. package/dist/brave-XSASGGH2.js +4 -0
  15. package/dist/brave-XSASGGH2.js.map +1 -0
  16. package/dist/chunk-2FAWEBZS.cjs +88 -0
  17. package/dist/chunk-2FAWEBZS.cjs.map +1 -0
  18. package/dist/chunk-53UGJNHN.js +92 -0
  19. package/dist/chunk-53UGJNHN.js.map +1 -0
  20. package/dist/chunk-6T5XXJEP.cjs +80 -0
  21. package/dist/chunk-6T5XXJEP.cjs.map +1 -0
  22. package/dist/chunk-7K7HZMP4.cjs +1170 -0
  23. package/dist/chunk-7K7HZMP4.cjs.map +1 -0
  24. package/dist/chunk-7W7QLZNC.js +72 -0
  25. package/dist/chunk-7W7QLZNC.js.map +1 -0
  26. package/dist/{chunk-JM7PB2LP.js → chunk-7XFFRV7D.js} +10 -66
  27. package/dist/chunk-7XFFRV7D.js.map +1 -0
  28. package/dist/chunk-ASV6JLYG.cjs +99 -0
  29. package/dist/chunk-ASV6JLYG.cjs.map +1 -0
  30. package/dist/chunk-BH7MNDWW.js +1152 -0
  31. package/dist/chunk-BH7MNDWW.js.map +1 -0
  32. package/dist/chunk-BKO7DSPU.js +67 -0
  33. package/dist/chunk-BKO7DSPU.js.map +1 -0
  34. package/dist/chunk-CBAHCI4R.cjs +76 -0
  35. package/dist/chunk-CBAHCI4R.cjs.map +1 -0
  36. package/dist/chunk-CEKAYA2Q.cjs +74 -0
  37. package/dist/chunk-CEKAYA2Q.cjs.map +1 -0
  38. package/dist/chunk-CEOMTQTP.js +85 -0
  39. package/dist/chunk-CEOMTQTP.js.map +1 -0
  40. package/dist/chunk-DABZYCVX.js +84 -0
  41. package/dist/chunk-DABZYCVX.js.map +1 -0
  42. package/dist/chunk-DGUM43GV.js +10 -0
  43. package/dist/chunk-DGUM43GV.js.map +1 -0
  44. package/dist/chunk-G4SF2PNQ.js +33 -0
  45. package/dist/chunk-G4SF2PNQ.js.map +1 -0
  46. package/dist/chunk-GANCV72Z.cjs +110 -0
  47. package/dist/chunk-GANCV72Z.cjs.map +1 -0
  48. package/dist/{chunk-BLSI67J6.cjs → chunk-H5XMKBBA.cjs} +425 -30
  49. package/dist/chunk-H5XMKBBA.cjs.map +1 -0
  50. package/dist/{chunk-CJ7UWN2Y.js → chunk-IXFV6AW6.js} +397 -7
  51. package/dist/chunk-IXFV6AW6.js.map +1 -0
  52. package/dist/chunk-JEQ2X3Z6.cjs +12 -0
  53. package/dist/chunk-JEQ2X3Z6.cjs.map +1 -0
  54. package/dist/chunk-JO4BHPAD.cjs +40 -0
  55. package/dist/chunk-JO4BHPAD.cjs.map +1 -0
  56. package/dist/chunk-MEBXW75C.cjs +89 -0
  57. package/dist/chunk-MEBXW75C.cjs.map +1 -0
  58. package/dist/chunk-MNDGIW47.js +76 -0
  59. package/dist/chunk-MNDGIW47.js.map +1 -0
  60. package/dist/chunk-PPFHA6IL.js +83 -0
  61. package/dist/chunk-PPFHA6IL.js.map +1 -0
  62. package/dist/chunk-RQ74USYU.js +128 -0
  63. package/dist/chunk-RQ74USYU.js.map +1 -0
  64. package/dist/chunk-TXLIY7GF.cjs +132 -0
  65. package/dist/chunk-TXLIY7GF.cjs.map +1 -0
  66. package/dist/chunk-UIWFYMAO.cjs +82 -0
  67. package/dist/chunk-UIWFYMAO.cjs.map +1 -0
  68. package/dist/{chunk-4PRWNAXQ.cjs → chunk-UOWLKFXK.cjs} +27 -89
  69. package/dist/chunk-UOWLKFXK.cjs.map +1 -0
  70. package/dist/chunk-VD74IPKB.js +106 -0
  71. package/dist/chunk-VD74IPKB.js.map +1 -0
  72. package/dist/chunk-W73FBYIH.cjs +87 -0
  73. package/dist/chunk-W73FBYIH.cjs.map +1 -0
  74. package/dist/chunk-XGITAEXU.js +93 -0
  75. package/dist/chunk-XGITAEXU.js.map +1 -0
  76. package/dist/chunk-XWOHNY3F.cjs +96 -0
  77. package/dist/chunk-XWOHNY3F.cjs.map +1 -0
  78. package/dist/chunk-ZPYQDMUX.js +79 -0
  79. package/dist/chunk-ZPYQDMUX.js.map +1 -0
  80. package/dist/core/index.cjs +156 -84
  81. package/dist/core/index.d.cts +16 -4
  82. package/dist/core/index.d.ts +16 -4
  83. package/dist/core/index.js +13 -1
  84. package/dist/exa-72KFY5A7.cjs +21 -0
  85. package/dist/exa-72KFY5A7.cjs.map +1 -0
  86. package/dist/exa-Dp9U-WTc.d.ts +17 -0
  87. package/dist/exa-NNVPBC2M.js +4 -0
  88. package/dist/exa-NNVPBC2M.js.map +1 -0
  89. package/dist/exa-jJSPhyUW.d.cts +17 -0
  90. package/dist/google-CHU2yycE.d.cts +17 -0
  91. package/dist/google-CTEK6SV2.js +4 -0
  92. package/dist/google-CTEK6SV2.js.map +1 -0
  93. package/dist/google-Da8IQxaI.d.ts +17 -0
  94. package/dist/google-IIUXFFVF.cjs +21 -0
  95. package/dist/google-IIUXFFVF.cjs.map +1 -0
  96. package/dist/index-2VtgKM8S.d.cts +206 -0
  97. package/dist/index-pWEH7pUE.d.ts +206 -0
  98. package/dist/mcp/index.cjs +670 -0
  99. package/dist/mcp/index.cjs.map +1 -0
  100. package/dist/mcp/index.d.cts +779 -0
  101. package/dist/mcp/index.d.ts +779 -0
  102. package/dist/mcp/index.js +574 -0
  103. package/dist/mcp/index.js.map +1 -0
  104. package/dist/openai-6KTCQ7PZ.cjs +21 -0
  105. package/dist/openai-6KTCQ7PZ.cjs.map +1 -0
  106. package/dist/openai-7W2PCNW5.js +4 -0
  107. package/dist/openai-7W2PCNW5.js.map +1 -0
  108. package/dist/openai-Cam8hF4f.d.ts +17 -0
  109. package/dist/openai-HVSCuXgO.d.cts +17 -0
  110. package/dist/react/index.cjs +75 -42
  111. package/dist/react/index.d.cts +270 -45
  112. package/dist/react/index.d.ts +270 -45
  113. package/dist/react/index.js +15 -2
  114. package/dist/searxng-AXLVGY7Z.js +4 -0
  115. package/dist/searxng-AXLVGY7Z.js.map +1 -0
  116. package/dist/searxng-EJKNY236.cjs +21 -0
  117. package/dist/searxng-EJKNY236.cjs.map +1 -0
  118. package/dist/searxng-K0qtY9vp.d.ts +17 -0
  119. package/dist/searxng-QGOte_Gq.d.cts +17 -0
  120. package/dist/serper-3JYJHJX6.js +4 -0
  121. package/dist/serper-3JYJHJX6.js.map +1 -0
  122. package/dist/serper-63FT4AOL.cjs +21 -0
  123. package/dist/serper-63FT4AOL.cjs.map +1 -0
  124. package/dist/serper-7Czya3PW.d.ts +17 -0
  125. package/dist/serper-JzdaSnS9.d.cts +17 -0
  126. package/dist/styles.css +38 -0
  127. package/dist/tavily-AWFP4RM7.cjs +21 -0
  128. package/dist/tavily-AWFP4RM7.cjs.map +1 -0
  129. package/dist/tavily-C8cXXojE.d.cts +17 -0
  130. package/dist/tavily-CIWAAZPH.js +4 -0
  131. package/dist/tavily-CIWAAZPH.js.map +1 -0
  132. package/dist/tavily-DdSGVgkE.d.ts +17 -0
  133. package/dist/themes/catppuccin.css +2 -0
  134. package/dist/themes/claude.css +2 -0
  135. package/dist/themes/linear.css +2 -0
  136. package/dist/themes/modern-minimal.css +2 -0
  137. package/dist/themes/posthog.css +2 -0
  138. package/dist/themes/supabase.css +2 -0
  139. package/dist/themes/twitter.css +2 -0
  140. package/dist/themes/vercel.css +2 -0
  141. package/dist/tools/anthropic/index.cjs +61 -0
  142. package/dist/tools/anthropic/index.cjs.map +1 -0
  143. package/dist/tools/anthropic/index.d.cts +67 -0
  144. package/dist/tools/anthropic/index.d.ts +67 -0
  145. package/dist/tools/anthropic/index.js +56 -0
  146. package/dist/tools/anthropic/index.js.map +1 -0
  147. package/dist/tools/brave/index.cjs +85 -0
  148. package/dist/tools/brave/index.cjs.map +1 -0
  149. package/dist/tools/brave/index.d.cts +91 -0
  150. package/dist/tools/brave/index.d.ts +91 -0
  151. package/dist/tools/brave/index.js +80 -0
  152. package/dist/tools/brave/index.js.map +1 -0
  153. package/dist/tools/exa/index.cjs +90 -0
  154. package/dist/tools/exa/index.cjs.map +1 -0
  155. package/dist/tools/exa/index.d.cts +92 -0
  156. package/dist/tools/exa/index.d.ts +92 -0
  157. package/dist/tools/exa/index.js +85 -0
  158. package/dist/tools/exa/index.js.map +1 -0
  159. package/dist/tools/google/index.cjs +81 -0
  160. package/dist/tools/google/index.cjs.map +1 -0
  161. package/dist/tools/google/index.d.cts +81 -0
  162. package/dist/tools/google/index.d.ts +81 -0
  163. package/dist/tools/google/index.js +76 -0
  164. package/dist/tools/google/index.js.map +1 -0
  165. package/dist/tools/openai/index.cjs +83 -0
  166. package/dist/tools/openai/index.cjs.map +1 -0
  167. package/dist/tools/openai/index.d.cts +84 -0
  168. package/dist/tools/openai/index.d.ts +84 -0
  169. package/dist/tools/openai/index.js +78 -0
  170. package/dist/tools/openai/index.js.map +1 -0
  171. package/dist/tools/searxng/index.cjs +85 -0
  172. package/dist/tools/searxng/index.cjs.map +1 -0
  173. package/dist/tools/searxng/index.d.cts +91 -0
  174. package/dist/tools/searxng/index.d.ts +91 -0
  175. package/dist/tools/searxng/index.js +80 -0
  176. package/dist/tools/searxng/index.js.map +1 -0
  177. package/dist/tools/serper/index.cjs +85 -0
  178. package/dist/tools/serper/index.cjs.map +1 -0
  179. package/dist/tools/serper/index.d.cts +91 -0
  180. package/dist/tools/serper/index.d.ts +91 -0
  181. package/dist/tools/serper/index.js +80 -0
  182. package/dist/tools/serper/index.js.map +1 -0
  183. package/dist/tools/tavily/index.cjs +91 -0
  184. package/dist/tools/tavily/index.cjs.map +1 -0
  185. package/dist/tools/tavily/index.d.cts +95 -0
  186. package/dist/tools/tavily/index.d.ts +95 -0
  187. package/dist/tools/tavily/index.js +86 -0
  188. package/dist/tools/tavily/index.js.map +1 -0
  189. package/dist/tools/web-search/index.cjs +31 -0
  190. package/dist/tools/web-search/index.cjs.map +1 -0
  191. package/dist/tools/web-search/index.d.cts +3 -0
  192. package/dist/tools/web-search/index.d.ts +3 -0
  193. package/dist/tools/web-search/index.js +14 -0
  194. package/dist/tools/web-search/index.js.map +1 -0
  195. package/dist/{types-BtAaOV07.d.cts → tools-DDWrco4h.d.cts} +43 -367
  196. package/dist/{types-BtAaOV07.d.ts → tools-DDWrco4h.d.ts} +43 -367
  197. package/dist/types-B20VCJXL.d.cts +347 -0
  198. package/dist/types-B20VCJXL.d.ts +347 -0
  199. package/dist/types-Cizh9K_f.d.ts +441 -0
  200. package/dist/types-DG2ya08y.d.cts +367 -0
  201. package/dist/types-DG2ya08y.d.ts +367 -0
  202. package/dist/types-DjSfYNKj.d.cts +441 -0
  203. package/dist/types-ZguuKEs_.d.cts +127 -0
  204. package/dist/types-ZguuKEs_.d.ts +127 -0
  205. package/dist/ui/index.cjs +1075 -148
  206. package/dist/ui/index.cjs.map +1 -1
  207. package/dist/ui/index.d.cts +410 -4
  208. package/dist/ui/index.d.ts +410 -4
  209. package/dist/ui/index.js +1007 -96
  210. package/dist/ui/index.js.map +1 -1
  211. package/package.json +52 -2
  212. package/dist/chunk-4PRWNAXQ.cjs.map +0 -1
  213. package/dist/chunk-BLSI67J6.cjs.map +0 -1
  214. package/dist/chunk-CJ7UWN2Y.js.map +0 -1
  215. package/dist/chunk-JM7PB2LP.js.map +0 -1
@@ -1,9 +1,14 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
- import { L as LLMConfig, l as ToolsConfig, s as ActionDefinition, o as CapturedContext, m as ToolConsentRequest, T as ToolType, n as ToolConsentResponse, S as ScreenshotOptions, C as ConsoleLogOptions, N as NetworkRequestOptions, I as IntentDetectionResult, y as InternalKnowledgeBaseConfig, B as InternalKnowledgeBaseSearchResponse, z as InternalKnowledgeBaseResult, Y as ThreadManagerState, Z as LoadStatus, U as ThreadManagerConfig, F as ThreadManager, V as ThreadManagerCallbacks, W as CreateThreadOptions, X as UpdateThreadOptions } from '../ThreadManager-JT0sqSSD.js';
4
- export { A as ActionParameter, q as CloudConfig, r as CopilotConfig, _ as LocalStorageAdapterConfig, J as createLocalStorageAdapter, O as createMemoryAdapter, i as generateSuggestionReason } from '../ThreadManager-JT0sqSSD.js';
5
- import { X as AsyncThreadStorageAdapter, M as MessageAttachment, i as ToolCall, S as Source, T as ToolDefinition, x as PermissionLevel, c as ToolInputSchema, g as Message, s as ToolExecution$1, e as ToolContext, b as ToolResponse$1, n as ToolRenderProps, p as ToolSet, U as UnifiedToolCall, k as Thread, l as ThreadData, _ as ThreadStorageAdapter, z as PermissionStorageConfig, B as PermissionStorageAdapter } from '../types-BtAaOV07.js';
6
- export { t as AgentLoopConfig, P as PersistenceConfig, m as ThreadStorageAdapter, a as ToolExecutionStatus, y as ToolPermission } from '../types-BtAaOV07.js';
3
+ import { L as LLMConfig, l as ToolsConfig, s as ActionDefinition, o as CapturedContext, m as ToolConsentRequest, T as ToolType, n as ToolConsentResponse, S as ScreenshotOptions, C as ConsoleLogOptions, N as NetworkRequestOptions, I as IntentDetectionResult, y as InternalKnowledgeBaseConfig, B as InternalKnowledgeBaseSearchResponse, z as InternalKnowledgeBaseResult, Y as ThreadManagerState, Z as LoadStatus, U as ThreadManagerConfig, F as ThreadManager, V as ThreadManagerCallbacks, W as CreateThreadOptions, X as UpdateThreadOptions } from '../ThreadManager-Dkp_eLty.js';
4
+ export { A as ActionParameter, q as CloudConfig, r as CopilotConfig, _ as LocalStorageAdapterConfig, J as createLocalStorageAdapter, O as createMemoryAdapter, i as generateSuggestionReason } from '../ThreadManager-Dkp_eLty.js';
5
+ import { T as ToolDefinition, P as PermissionLevel, c as ToolInputSchema, k as ToolExecution$1, e as ToolContext, b as ToolResponse$1, f as ToolRenderProps, h as ToolSet, U as UnifiedToolCall, q as PermissionStorageConfig, r as PermissionStorageAdapter } from '../tools-DDWrco4h.js';
6
+ export { l as AgentLoopConfig, a as ToolExecutionStatus, p as ToolPermission } from '../tools-DDWrco4h.js';
7
+ import { A as AsyncThreadStorageAdapter, c as MessageAttachment, f as ToolCall, S as Source, M as Message, T as Thread, a as ThreadData, b as ThreadStorageAdapter } from '../types-DG2ya08y.js';
8
+ export { P as PersistenceConfig, h as ThreadStorageAdapter } from '../types-DG2ya08y.js';
9
+ import { U as UseMCPClientConfig, D as UseMCPClientReturn, E as UseMCPToolsConfig, F as UseMCPToolsReturn } from '../types-Cizh9K_f.js';
10
+ export { b as MCPClientState } from '../types-Cizh9K_f.js';
11
+ import { U as UseMCPUIIntentsConfig, m as UseMCPUIIntentsReturn } from '../types-B20VCJXL.js';
7
12
 
8
13
  /**
9
14
  * Server Thread Storage Adapter
@@ -48,46 +53,6 @@ interface ServerAdapterConfig {
48
53
  */
49
54
  declare function createServerAdapter(config: ServerAdapterConfig): AsyncThreadStorageAdapter;
50
55
 
51
- /**
52
- * Message Types
53
- *
54
- * Pure type definitions for chat messages.
55
- * No logic, no side effects - just types.
56
- */
57
-
58
- /**
59
- * Chat message roles
60
- */
61
- type MessageRole = "user" | "assistant" | "system" | "tool";
62
- /**
63
- * UIMessage - The source of truth for UI state
64
- *
65
- * Inspired by Vercel AI SDK's UIMessage pattern.
66
- * This is what your UI renders and what gets persisted.
67
- */
68
- interface UIMessage {
69
- /** Unique message ID */
70
- id: string;
71
- /** Message role */
72
- role: MessageRole;
73
- /** Message content */
74
- content: string;
75
- /** Thinking/reasoning content (for extended thinking models) */
76
- thinking?: string;
77
- /** Message attachments (images, PDFs, etc) */
78
- attachments?: MessageAttachment[];
79
- /** Tool calls made by assistant */
80
- toolCalls?: ToolCall[];
81
- /** Tool call ID (for tool result messages) */
82
- toolCallId?: string;
83
- /** Sources from knowledge base */
84
- sources?: Source[];
85
- /** Creation timestamp */
86
- createdAt: Date;
87
- /** Additional metadata */
88
- metadata?: Record<string, unknown>;
89
- }
90
-
91
56
  /**
92
57
  * ChatTransport Interface
93
58
  *
@@ -132,6 +97,32 @@ interface ChatResponse {
132
97
  /** Whether client needs to execute tools */
133
98
  requiresAction?: boolean;
134
99
  }
100
+ /**
101
+ * Tool result from server
102
+ */
103
+ interface ToolResultData {
104
+ success: boolean;
105
+ data?: unknown;
106
+ error?: string;
107
+ _aiContext?: string;
108
+ }
109
+ /**
110
+ * Citation from web search (unified format for all providers)
111
+ */
112
+ interface Citation {
113
+ /** Unique citation index (1-based) */
114
+ index: number;
115
+ /** Source URL */
116
+ url: string;
117
+ /** Page title */
118
+ title: string;
119
+ /** Cited text snippet (optional) */
120
+ citedText?: string;
121
+ /** Source domain (extracted from URL) */
122
+ domain?: string;
123
+ /** Favicon URL (generated from domain) */
124
+ favicon?: string;
125
+ }
135
126
  /**
136
127
  * Stream chunk types
137
128
  */
@@ -160,6 +151,37 @@ type StreamChunk = {
160
151
  type: "done";
161
152
  messages?: unknown[];
162
153
  requiresAction?: boolean;
154
+ } | {
155
+ type: "action:start";
156
+ id: string;
157
+ name: string;
158
+ } | {
159
+ type: "action:args";
160
+ id: string;
161
+ args: string;
162
+ } | {
163
+ type: "action:end";
164
+ id: string;
165
+ name: string;
166
+ result?: ToolResultData;
167
+ error?: string;
168
+ } | {
169
+ type: "tool:result";
170
+ id: string;
171
+ name: string;
172
+ result: ToolResultData;
173
+ } | {
174
+ type: "loop:iteration";
175
+ iteration: number;
176
+ maxIterations: number;
177
+ } | {
178
+ type: "loop:complete";
179
+ iterations: number;
180
+ maxIterationsReached?: boolean;
181
+ aborted?: boolean;
182
+ } | {
183
+ type: "citation";
184
+ citations: Citation[];
163
185
  };
164
186
  /**
165
187
  * ChatTransport interface
@@ -200,6 +222,46 @@ interface ChatTransport {
200
222
  isStreaming(): boolean;
201
223
  }
202
224
 
225
+ /**
226
+ * Message Types
227
+ *
228
+ * Pure type definitions for chat messages.
229
+ * No logic, no side effects - just types.
230
+ */
231
+
232
+ /**
233
+ * Chat message roles
234
+ */
235
+ type MessageRole = "user" | "assistant" | "system" | "tool";
236
+ /**
237
+ * UIMessage - The source of truth for UI state
238
+ *
239
+ * Inspired by Vercel AI SDK's UIMessage pattern.
240
+ * This is what your UI renders and what gets persisted.
241
+ */
242
+ interface UIMessage {
243
+ /** Unique message ID */
244
+ id: string;
245
+ /** Message role */
246
+ role: MessageRole;
247
+ /** Message content */
248
+ content: string;
249
+ /** Thinking/reasoning content (for extended thinking models) */
250
+ thinking?: string;
251
+ /** Message attachments (images, PDFs, etc) */
252
+ attachments?: MessageAttachment[];
253
+ /** Tool calls made by assistant */
254
+ toolCalls?: ToolCall[];
255
+ /** Tool call ID (for tool result messages) */
256
+ toolCallId?: string;
257
+ /** Sources from knowledge base */
258
+ sources?: Source[];
259
+ /** Creation timestamp */
260
+ createdAt: Date;
261
+ /** Additional metadata */
262
+ metadata?: Record<string, unknown>;
263
+ }
264
+
203
265
  /**
204
266
  * ChatState Interface
205
267
  *
@@ -2051,6 +2113,169 @@ interface UseThreadManagerReturn {
2051
2113
  */
2052
2114
  declare function useThreadManager(config?: UseThreadManagerConfig): UseThreadManagerReturn;
2053
2115
 
2116
+ /**
2117
+ * React hook for managing an MCP client connection
2118
+ *
2119
+ * This hook provides a managed MCP client that handles connection lifecycle,
2120
+ * tool discovery, and state management automatically.
2121
+ *
2122
+ * @example
2123
+ * ```tsx
2124
+ * function MyComponent() {
2125
+ * const {
2126
+ * state,
2127
+ * connect,
2128
+ * disconnect,
2129
+ * callTool,
2130
+ * isConnected,
2131
+ * isLoading,
2132
+ * } = useMCPClient({
2133
+ * name: "github",
2134
+ * transport: "http",
2135
+ * url: "https://mcp.github.com",
2136
+ * headers: { Authorization: `Bearer ${token}` },
2137
+ * autoConnect: true,
2138
+ * });
2139
+ *
2140
+ * if (isLoading) return <div>Connecting...</div>;
2141
+ * if (!isConnected) return <button onClick={connect}>Connect</button>;
2142
+ *
2143
+ * return (
2144
+ * <div>
2145
+ * <p>Connected to {state.serverInfo?.name}</p>
2146
+ * <p>{state.tools.length} tools available</p>
2147
+ * </div>
2148
+ * );
2149
+ * }
2150
+ * ```
2151
+ */
2152
+ declare function useMCPClient(config: UseMCPClientConfig): UseMCPClientReturn;
2153
+
2154
+ /**
2155
+ * React hook for connecting to an MCP server and auto-registering its tools
2156
+ *
2157
+ * This hook combines the MCP client management with automatic tool registration
2158
+ * to the CopilotProvider. When connected, all MCP tools become available to
2159
+ * the AI assistant automatically.
2160
+ *
2161
+ * @example
2162
+ * ```tsx
2163
+ * function CopilotWithGitHub() {
2164
+ * const {
2165
+ * state,
2166
+ * isConnected,
2167
+ * isLoading,
2168
+ * toolDefinitions,
2169
+ * } = useMCPTools({
2170
+ * name: "github",
2171
+ * transport: "http",
2172
+ * url: "https://mcp.github.com",
2173
+ * headers: { Authorization: `Bearer ${token}` },
2174
+ * autoConnect: true,
2175
+ * prefixToolNames: true, // Tools named: github_create_issue, etc.
2176
+ * onElicitationRequest: async (request) => {
2177
+ * // Show custom approval UI
2178
+ * const approved = await showApprovalDialog(request);
2179
+ * return { requestId: request.requestId, accepted: approved };
2180
+ * },
2181
+ * });
2182
+ *
2183
+ * return (
2184
+ * <div>
2185
+ * {isLoading && <div>Connecting to GitHub MCP...</div>}
2186
+ * {isConnected && (
2187
+ * <div>{toolDefinitions.length} GitHub tools available</div>
2188
+ * )}
2189
+ * <CopilotChat />
2190
+ * </div>
2191
+ * );
2192
+ * }
2193
+ * ```
2194
+ */
2195
+ declare function useMCPTools(config: UseMCPToolsConfig): UseMCPToolsReturn;
2196
+
2197
+ /**
2198
+ * useMCPUIIntents - Hook for handling MCP-UI intents
2199
+ *
2200
+ * This hook provides a unified handler for all MCP-UI intent types.
2201
+ * Use it to handle user interactions from MCP-UI components rendered
2202
+ * in the chat interface.
2203
+ *
2204
+ * @example
2205
+ * ```tsx
2206
+ * function ChatWithMCPUI() {
2207
+ * const { sendMessage, callTool } = useCopilotChat();
2208
+ *
2209
+ * const { handleIntent } = useMCPUIIntents({
2210
+ * // Handle tool calls from UI
2211
+ * onToolCall: async (name, args) => {
2212
+ * await callTool(name, args);
2213
+ * },
2214
+ * // Handle semantic actions
2215
+ * onIntent: (action, data) => {
2216
+ * if (action === "add_to_cart") {
2217
+ * // Dispatch to state management or send to agent
2218
+ * sendMessage(`Add ${data?.productId} to cart`);
2219
+ * }
2220
+ * },
2221
+ * // Pre-fill chat input
2222
+ * onPrompt: (text) => {
2223
+ * setInputValue(text);
2224
+ * },
2225
+ * // Show toast notifications
2226
+ * onNotify: (message, level) => {
2227
+ * toast({ message, type: level });
2228
+ * },
2229
+ * // Handle link clicks
2230
+ * onLink: (url, newTab) => {
2231
+ * // Return false to prevent default behavior
2232
+ * if (url.startsWith('internal://')) {
2233
+ * navigate(url.replace('internal://', '/'));
2234
+ * return false;
2235
+ * }
2236
+ * },
2237
+ * });
2238
+ *
2239
+ * return (
2240
+ * <CopilotChat
2241
+ * onUIIntent={handleIntent}
2242
+ * />
2243
+ * );
2244
+ * }
2245
+ * ```
2246
+ */
2247
+ declare function useMCPUIIntents(config?: UseMCPUIIntentsConfig): UseMCPUIIntentsReturn;
2248
+ /**
2249
+ * Create a simple intent handler that sends intents as messages
2250
+ *
2251
+ * This is a convenience function for when you want all intents
2252
+ * to be converted to natural language messages sent to the agent.
2253
+ *
2254
+ * @example
2255
+ * ```tsx
2256
+ * const { sendMessage } = useCopilotChat();
2257
+ * const { handleIntent } = useMCPUIIntents(
2258
+ * createMessageIntentHandler(sendMessage)
2259
+ * );
2260
+ * ```
2261
+ */
2262
+ declare function createMessageIntentHandler(sendMessage: (message: string) => void | Promise<void>): UseMCPUIIntentsConfig;
2263
+ /**
2264
+ * Create an intent handler that integrates with a tool executor
2265
+ *
2266
+ * This connects MCP-UI tool intents directly to useMCPTools
2267
+ * for seamless tool chaining.
2268
+ *
2269
+ * @example
2270
+ * ```tsx
2271
+ * const { callTool } = useMCPTools({ ... });
2272
+ * const { handleIntent } = useMCPUIIntents(
2273
+ * createToolIntentHandler(callTool)
2274
+ * );
2275
+ * ```
2276
+ */
2277
+ declare function createToolIntentHandler(callTool: (name: string, args?: Record<string, unknown>) => Promise<unknown>): UseMCPUIIntentsConfig;
2278
+
2054
2279
  /**
2055
2280
  * Create a permission storage adapter based on config
2056
2281
  */
@@ -2294,4 +2519,4 @@ interface UseChatReturn {
2294
2519
  */
2295
2520
  declare function useChat(config: UseChatConfig): UseChatReturn;
2296
2521
 
2297
- export { type AIContextItem, AbstractAgentLoop, AbstractChat, ActionDefinition, type AgentLoopActions, type AgentLoopCallbacks, type AgentLoopState, AsyncThreadStorageAdapter, type CapabilitiesResponse, CapturedContext, type ChatActions, type ChatCallbacks, type ChatConfig, type ChatState, type ChatStatus, type ToolExecution as ChatToolExecution, type ToolResponse as ChatToolResponse, type CombinedChatState, type CopilotContextValue, CopilotProvider, type CopilotProviderProps, type AgentLoopState$1 as CoreAgentLoopState, type ChatState$1 as CoreChatState, type DevLoggerState, IntentDetectionResult, type KnowledgeBaseConfig, type KnowledgeBaseResult, type KnowledgeBaseSearchResponse, LLMConfig, Message, PermissionLevel, PermissionStorageAdapter, PermissionStorageConfig, type ProviderCapabilities, ReactChat, type ReactChatConfig, ReactChatState, ReactThreadManager, type ReactThreadManagerConfig, ReactThreadManagerState, type ServerAdapterConfig, Source, type Suggestion, Thread, ThreadData, ToolConsentRequest, ToolConsentResponse, ToolContext, ToolDefinition, ToolExecution$1 as ToolExecution, ToolResponse$1 as ToolResponse, ToolType, type ToolsActions, ToolsConfig, type ToolsState, type UIMessage, UnifiedToolCall, type UseAIToolsOptions, type UseAIToolsReturn, type UseAgentOptions, type UseAgentReturn, type UseChatConfig, type UseChatReturn, type UseKnowledgeBaseConfig, type UseSuggestionsOptions, type UseSuggestionsReturn, type UseThreadManagerConfig, type UseThreadManagerReturn, type UseToolConfig, type UseToolExecutorReturn, type UseToolWithSchemaConfig, createPermissionStorage, createReactChat, createReactChatState, createReactThreadManager, createReactThreadManagerState, createServerAdapter, createSessionPermissionCache, formatKnowledgeResultsForAI, initialAgentLoopState, searchKnowledgeBase, useAIAction, useAIActions, useAIContext, useAIContexts, useAITools, useAgent, useCapabilities, useChat, useCopilot, useDevLogger, useFeatureSupport, useKnowledgeBase, useSuggestions, useSupportedMediaTypes, useThreadManager, useTool, useToolExecutor, useToolWithSchema, useTools, useToolsWithSchema };
2522
+ export { type AIContextItem, AbstractAgentLoop, AbstractChat, ActionDefinition, type AgentLoopActions, type AgentLoopCallbacks, type AgentLoopState, AsyncThreadStorageAdapter, type CapabilitiesResponse, CapturedContext, type ChatActions, type ChatCallbacks, type ChatConfig, type ChatState, type ChatStatus, type ToolExecution as ChatToolExecution, type ToolResponse as ChatToolResponse, type CombinedChatState, type CopilotContextValue, CopilotProvider, type CopilotProviderProps, type AgentLoopState$1 as CoreAgentLoopState, type ChatState$1 as CoreChatState, type DevLoggerState, IntentDetectionResult, type KnowledgeBaseConfig, type KnowledgeBaseResult, type KnowledgeBaseSearchResponse, LLMConfig, Message, PermissionLevel, PermissionStorageAdapter, PermissionStorageConfig, type ProviderCapabilities, ReactChat, type ReactChatConfig, ReactChatState, ReactThreadManager, type ReactThreadManagerConfig, ReactThreadManagerState, type ServerAdapterConfig, Source, type Suggestion, Thread, ThreadData, ToolConsentRequest, ToolConsentResponse, ToolContext, ToolDefinition, ToolExecution$1 as ToolExecution, ToolResponse$1 as ToolResponse, ToolType, type ToolsActions, ToolsConfig, type ToolsState, type UIMessage, UnifiedToolCall, type UseAIToolsOptions, type UseAIToolsReturn, type UseAgentOptions, type UseAgentReturn, type UseChatConfig, type UseChatReturn, type UseKnowledgeBaseConfig, UseMCPClientConfig, UseMCPClientReturn, UseMCPToolsConfig, UseMCPToolsReturn, UseMCPUIIntentsConfig, UseMCPUIIntentsReturn, type UseSuggestionsOptions, type UseSuggestionsReturn, type UseThreadManagerConfig, type UseThreadManagerReturn, type UseToolConfig, type UseToolExecutorReturn, type UseToolWithSchemaConfig, createMessageIntentHandler, createPermissionStorage, createReactChat, createReactChatState, createReactThreadManager, createReactThreadManagerState, createServerAdapter, createSessionPermissionCache, createToolIntentHandler, formatKnowledgeResultsForAI, initialAgentLoopState, searchKnowledgeBase, useAIAction, useAIActions, useAIContext, useAIContexts, useAITools, useAgent, useCapabilities, useChat, useCopilot, useDevLogger, useFeatureSupport, useKnowledgeBase, useMCPClient, useMCPTools, useMCPUIIntents, useSuggestions, useSupportedMediaTypes, useThreadManager, useTool, useToolExecutor, useToolWithSchema, useTools, useToolsWithSchema };
@@ -1,4 +1,17 @@
1
- export { AbstractAgentLoop, AbstractChat, CopilotProvider, ReactChat, ReactChatState, ReactThreadManager, ReactThreadManagerState, createPermissionStorage, createReactChat, createReactChatState, createReactThreadManager, createReactThreadManagerState, createSessionPermissionCache, formatKnowledgeResultsForAI, initialAgentLoopState, searchKnowledgeBase, useAIAction, useAIActions, useAIContext, useAIContexts, useAITools, useAgent, useCapabilities, useChat, useCopilot, useDevLogger, useFeatureSupport, useKnowledgeBase, useSuggestions, useSupportedMediaTypes, useThreadManager, useTool, useToolExecutor, useToolWithSchema, useTools, useToolsWithSchema } from '../chunk-CJ7UWN2Y.js';
2
- export { createLocalStorageAdapter, createMemoryAdapter, createServerAdapter, generateSuggestionReason } from '../chunk-JM7PB2LP.js';
1
+ export { AbstractAgentLoop, AbstractChat, CopilotProvider, ReactChat, ReactChatState, ReactThreadManager, ReactThreadManagerState, createMessageIntentHandler, createPermissionStorage, createReactChat, createReactChatState, createReactThreadManager, createReactThreadManagerState, createSessionPermissionCache, createToolIntentHandler, formatKnowledgeResultsForAI, initialAgentLoopState, searchKnowledgeBase, useAIAction, useAIActions, useAIContext, useAIContexts, useAITools, useAgent, useCapabilities, useChat, useCopilot, useDevLogger, useFeatureSupport, useKnowledgeBase, useMCPClient, useMCPTools, useMCPUIIntents, useSuggestions, useSupportedMediaTypes, useThreadManager, useTool, useToolExecutor, useToolWithSchema, useTools, useToolsWithSchema } from '../chunk-IXFV6AW6.js';
2
+ export { createLocalStorageAdapter, createMemoryAdapter, createServerAdapter, generateSuggestionReason } from '../chunk-7XFFRV7D.js';
3
+ import '../chunk-BH7MNDWW.js';
4
+ import '../chunk-ZPYQDMUX.js';
5
+ import '../chunk-BKO7DSPU.js';
6
+ import '../chunk-XGITAEXU.js';
7
+ import '../chunk-7W7QLZNC.js';
8
+ import '../chunk-CEOMTQTP.js';
9
+ import '../chunk-PPFHA6IL.js';
10
+ import '../chunk-DABZYCVX.js';
11
+ import '../chunk-MNDGIW47.js';
12
+ import '../chunk-VD74IPKB.js';
13
+ import '../chunk-53UGJNHN.js';
14
+ import '../chunk-RQ74USYU.js';
15
+ import '../chunk-DGUM43GV.js';
3
16
  //# sourceMappingURL=index.js.map
4
17
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ export { searchSearxng, searxngProvider, validateSearxngConfig } from './chunk-DABZYCVX.js';
2
+ import './chunk-DGUM43GV.js';
3
+ //# sourceMappingURL=searxng-AXLVGY7Z.js.map
4
+ //# sourceMappingURL=searxng-AXLVGY7Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"searxng-AXLVGY7Z.js"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunk2FAWEBZS_cjs = require('./chunk-2FAWEBZS.cjs');
4
+ require('./chunk-JEQ2X3Z6.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "searchSearxng", {
9
+ enumerable: true,
10
+ get: function () { return chunk2FAWEBZS_cjs.searchSearxng; }
11
+ });
12
+ Object.defineProperty(exports, "searxngProvider", {
13
+ enumerable: true,
14
+ get: function () { return chunk2FAWEBZS_cjs.searxngProvider; }
15
+ });
16
+ Object.defineProperty(exports, "validateSearxngConfig", {
17
+ enumerable: true,
18
+ get: function () { return chunk2FAWEBZS_cjs.validateSearxngConfig; }
19
+ });
20
+ //# sourceMappingURL=searxng-EJKNY236.cjs.map
21
+ //# sourceMappingURL=searxng-EJKNY236.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"searxng-EJKNY236.cjs"}
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.js';
2
+
3
+ /**
4
+ * SearXNG Search Provider
5
+ *
6
+ * SearXNG is a privacy-respecting, self-hostable metasearch engine.
7
+ * It aggregates results from multiple search engines without tracking.
8
+ *
9
+ * @see https://docs.searxng.org/
10
+ */
11
+
12
+ /**
13
+ * SearXNG provider implementation
14
+ */
15
+ declare const searxngProvider: WebSearchProviderInterface;
16
+
17
+ export { searxngProvider as s };
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.cjs';
2
+
3
+ /**
4
+ * SearXNG Search Provider
5
+ *
6
+ * SearXNG is a privacy-respecting, self-hostable metasearch engine.
7
+ * It aggregates results from multiple search engines without tracking.
8
+ *
9
+ * @see https://docs.searxng.org/
10
+ */
11
+
12
+ /**
13
+ * SearXNG provider implementation
14
+ */
15
+ declare const searxngProvider: WebSearchProviderInterface;
16
+
17
+ export { searxngProvider as s };
@@ -0,0 +1,4 @@
1
+ export { searchSerper, serperProvider, validateSerperConfig } from './chunk-CEOMTQTP.js';
2
+ import './chunk-DGUM43GV.js';
3
+ //# sourceMappingURL=serper-3JYJHJX6.js.map
4
+ //# sourceMappingURL=serper-3JYJHJX6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"serper-3JYJHJX6.js"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkMEBXW75C_cjs = require('./chunk-MEBXW75C.cjs');
4
+ require('./chunk-JEQ2X3Z6.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "searchSerper", {
9
+ enumerable: true,
10
+ get: function () { return chunkMEBXW75C_cjs.searchSerper; }
11
+ });
12
+ Object.defineProperty(exports, "serperProvider", {
13
+ enumerable: true,
14
+ get: function () { return chunkMEBXW75C_cjs.serperProvider; }
15
+ });
16
+ Object.defineProperty(exports, "validateSerperConfig", {
17
+ enumerable: true,
18
+ get: function () { return chunkMEBXW75C_cjs.validateSerperConfig; }
19
+ });
20
+ //# sourceMappingURL=serper-63FT4AOL.cjs.map
21
+ //# sourceMappingURL=serper-63FT4AOL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"serper-63FT4AOL.cjs"}
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.js';
2
+
3
+ /**
4
+ * Serper Search Provider
5
+ *
6
+ * Serper is a Google Search API that provides SERP data.
7
+ * Fast and cost-effective for real-time Google results.
8
+ *
9
+ * @see https://serper.dev/
10
+ */
11
+
12
+ /**
13
+ * Serper provider implementation
14
+ */
15
+ declare const serperProvider: WebSearchProviderInterface;
16
+
17
+ export { serperProvider as s };
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.cjs';
2
+
3
+ /**
4
+ * Serper Search Provider
5
+ *
6
+ * Serper is a Google Search API that provides SERP data.
7
+ * Fast and cost-effective for real-time Google results.
8
+ *
9
+ * @see https://serper.dev/
10
+ */
11
+
12
+ /**
13
+ * Serper provider implementation
14
+ */
15
+ declare const serperProvider: WebSearchProviderInterface;
16
+
17
+ export { serperProvider as s };
package/dist/styles.css CHANGED
@@ -33,6 +33,7 @@
33
33
  --input: hsl(240 5.9% 90%);
34
34
  --ring: hsl(240 5.9% 10%);
35
35
  --radius: 0.5rem;
36
+ --csdk-link-color: #2563eb;
36
37
  }
37
38
 
38
39
  .dark {
@@ -55,6 +56,7 @@
55
56
  --border: hsl(240 3.7% 15.9%);
56
57
  --input: hsl(240 3.7% 15.9%);
57
58
  --ring: hsl(240 4.9% 83.9%);
59
+ --csdk-link-color: #60a5fa;
58
60
  }
59
61
  }
60
62
 
@@ -149,3 +151,39 @@
149
151
  .csdk-loader-loading-dots {
150
152
  animation: csdk-loading-dots 1.4s infinite;
151
153
  }
154
+
155
+ /* Streamdown link-safety-modal (targets streamdown@^2.1.0 internal structure)
156
+ * Fixes CSS variable inheritance from parent message context.
157
+ * Users can override via --csdk-dialog-foreground and --csdk-dialog-muted-foreground at :root level.
158
+ */
159
+
160
+ /* Backdrop: cover full viewport, center the dialog */
161
+ [data-streamdown="link-safety-modal"] {
162
+ position: fixed;
163
+ inset: 0;
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: center;
167
+ }
168
+
169
+ /* Dialog card: reset CSS variables to light defaults, constrain width, apply foreground color */
170
+ [data-streamdown="link-safety-modal"] > div {
171
+ --foreground: var(--csdk-dialog-foreground, 240 10% 3.9%);
172
+ --muted-foreground: var(--csdk-dialog-muted-foreground, 240 3.8% 46.1%);
173
+ max-width: min(500px, 90vw);
174
+ margin: 0;
175
+ width: 100%;
176
+ color: hsl(var(--foreground));
177
+ }
178
+
179
+ /* Dark mode override */
180
+ .dark [data-streamdown="link-safety-modal"] > div,
181
+ :root.dark [data-streamdown="link-safety-modal"] > div {
182
+ --foreground: var(--csdk-dialog-foreground, 0 0% 98%);
183
+ --muted-foreground: var(--csdk-dialog-muted-foreground, 0 0% 62.7%);
184
+ }
185
+
186
+ [data-streamdown="link-safety-modal"] > div .text-muted-foreground {
187
+ color: hsl(var(--muted-foreground));
188
+ }
189
+
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkCBAHCI4R_cjs = require('./chunk-CBAHCI4R.cjs');
4
+ require('./chunk-JEQ2X3Z6.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "searchTavily", {
9
+ enumerable: true,
10
+ get: function () { return chunkCBAHCI4R_cjs.searchTavily; }
11
+ });
12
+ Object.defineProperty(exports, "tavilyProvider", {
13
+ enumerable: true,
14
+ get: function () { return chunkCBAHCI4R_cjs.tavilyProvider; }
15
+ });
16
+ Object.defineProperty(exports, "validateTavilyConfig", {
17
+ enumerable: true,
18
+ get: function () { return chunkCBAHCI4R_cjs.validateTavilyConfig; }
19
+ });
20
+ //# sourceMappingURL=tavily-AWFP4RM7.cjs.map
21
+ //# sourceMappingURL=tavily-AWFP4RM7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"tavily-AWFP4RM7.cjs"}
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.cjs';
2
+
3
+ /**
4
+ * Tavily Search Provider
5
+ *
6
+ * Tavily is an AI-native search engine optimized for LLMs.
7
+ * It provides high-quality results with optional AI-generated answers.
8
+ *
9
+ * @see https://tavily.com/
10
+ */
11
+
12
+ /**
13
+ * Tavily provider implementation
14
+ */
15
+ declare const tavilyProvider: WebSearchProviderInterface;
16
+
17
+ export { tavilyProvider as t };
@@ -0,0 +1,4 @@
1
+ export { searchTavily, tavilyProvider, validateTavilyConfig } from './chunk-7W7QLZNC.js';
2
+ import './chunk-DGUM43GV.js';
3
+ //# sourceMappingURL=tavily-CIWAAZPH.js.map
4
+ //# sourceMappingURL=tavily-CIWAAZPH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"tavily-CIWAAZPH.js"}
@@ -0,0 +1,17 @@
1
+ import { W as WebSearchProviderInterface } from './types-ZguuKEs_.js';
2
+
3
+ /**
4
+ * Tavily Search Provider
5
+ *
6
+ * Tavily is an AI-native search engine optimized for LLMs.
7
+ * It provides high-quality results with optional AI-generated answers.
8
+ *
9
+ * @see https://tavily.com/
10
+ */
11
+
12
+ /**
13
+ * Tavily provider implementation
14
+ */
15
+ declare const tavilyProvider: WebSearchProviderInterface;
16
+
17
+ export { tavilyProvider as t };
@@ -30,6 +30,7 @@
30
30
  --border: hsl(225 14% 77%);
31
31
  --input: hsl(223 16% 83%);
32
32
  --ring: hsl(267 84% 58%);
33
+ --csdk-link-color: hsl(220 83% 58%);
33
34
 
34
35
  --radius: 0.35rem;
35
36
  }
@@ -66,4 +67,5 @@
66
67
  --border: hsl(237 16% 23%);
67
68
  --input: hsl(237 16% 23%);
68
69
  --ring: hsl(267 83% 80%);
70
+ --csdk-link-color: hsl(220 83% 75%);
69
71
  }