@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
@@ -29,6 +29,7 @@
29
29
  --border: hsl(45 8% 84%);
30
30
  --input: hsl(47 6% 69%);
31
31
  --ring: hsl(16 56% 52%);
32
+ --csdk-link-color: hsl(210 70% 45%);
32
33
 
33
34
  --radius: 0.5rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(55 5% 23%);
66
67
  --input: hsl(52 5% 31%);
67
68
  --ring: hsl(14 62% 60%);
69
+ --csdk-link-color: hsl(210 70% 65%);
68
70
  }
@@ -29,6 +29,7 @@
29
29
  --border: hsl(260 12% 90%);
30
30
  --input: hsl(260 12% 90%);
31
31
  --ring: hsl(260 75% 50%);
32
+ --csdk-link-color: hsl(195 70% 40%);
32
33
 
33
34
  --radius: 0.5rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(260 22% 18%);
66
67
  --input: hsl(260 22% 18%);
67
68
  --ring: hsl(260 65% 58%);
69
+ --csdk-link-color: hsl(195 55% 60%);
68
70
  }
@@ -29,6 +29,7 @@
29
29
  --border: hsl(220 13% 91%);
30
30
  --input: hsl(220 13% 91%);
31
31
  --ring: hsl(217 91% 60%);
32
+ --csdk-link-color: hsl(217 91% 60%);
32
33
 
33
34
  --radius: 0.375rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(0 0% 25%);
66
67
  --input: hsl(0 0% 25%);
67
68
  --ring: hsl(217 91% 60%);
69
+ --csdk-link-color: hsl(217 91% 65%);
68
70
  }
@@ -31,6 +31,7 @@
31
31
  --border: hsl(30 15% 20%);
32
32
  --input: hsl(30 15% 20%);
33
33
  --ring: hsl(37 92% 50%);
34
+ --csdk-link-color: hsl(37 92% 40%);
34
35
 
35
36
  --radius: 0.625rem;
36
37
  }
@@ -67,6 +68,7 @@
67
68
  --border: hsl(40 30% 65%);
68
69
  --input: hsl(40 30% 65%);
69
70
  --ring: hsl(40 85% 55%);
71
+ --csdk-link-color: hsl(40 85% 55%);
70
72
  }
71
73
 
72
74
  /* ═══════════════════════════════════════════════════════════
@@ -29,6 +29,7 @@
29
29
  --border: hsl(0 0% 87%);
30
30
  --input: hsl(0 0% 96%);
31
31
  --ring: hsl(153 70% 67%);
32
+ --csdk-link-color: hsl(153 60% 38%);
32
33
 
33
34
  --radius: 0.5rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(0 0% 16%);
66
67
  --input: hsl(0 0% 14%);
67
68
  --ring: hsl(142 69% 58%);
69
+ --csdk-link-color: hsl(153 70% 50%);
68
70
  }
@@ -29,6 +29,7 @@
29
29
  --border: hsl(199 35% 92%);
30
30
  --input: hsl(200 20% 97%);
31
31
  --ring: hsl(204 88% 53%);
32
+ --csdk-link-color: hsl(201 89% 43%);
32
33
 
33
34
  --radius: 1.25rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(216 5% 15%);
66
67
  --input: hsl(202 58% 18%);
67
68
  --ring: hsl(204 88% 53%);
69
+ --csdk-link-color: hsl(201 89% 63%);
68
70
  }
@@ -29,6 +29,7 @@
29
29
  --border: hsl(0 0% 90%);
30
30
  --input: hsl(0 0% 90%);
31
31
  --ring: hsl(0 0% 0%);
32
+ --csdk-link-color: #2563eb;
32
33
 
33
34
  --radius: 0.375rem;
34
35
  }
@@ -65,4 +66,5 @@
65
66
  --border: hsl(0 0% 20%);
66
67
  --input: hsl(0 0% 20%);
67
68
  --ring: hsl(0 0% 100%);
69
+ --csdk-link-color: #60a5fa;
68
70
  }
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var chunkASV6JLYG_cjs = require('../../chunk-ASV6JLYG.cjs');
4
+ require('../../chunk-CBAHCI4R.cjs');
5
+ require('../../chunk-MEBXW75C.cjs');
6
+ require('../../chunk-W73FBYIH.cjs');
7
+ require('../../chunk-2FAWEBZS.cjs');
8
+ require('../../chunk-6T5XXJEP.cjs');
9
+ require('../../chunk-GANCV72Z.cjs');
10
+ require('../../chunk-XWOHNY3F.cjs');
11
+ var chunkTXLIY7GF_cjs = require('../../chunk-TXLIY7GF.cjs');
12
+ require('../../chunk-JEQ2X3Z6.cjs');
13
+
14
+ // src/tools/anthropic/index.ts
15
+ function anthropicSearch(config = {}) {
16
+ return {
17
+ name: "web_search",
18
+ description: "Search the web using Anthropic's native search for current information. Returns results with citations including cited text, URLs, and titles.",
19
+ location: "server",
20
+ inputSchema: {
21
+ type: "object",
22
+ properties: {
23
+ query: {
24
+ type: "string",
25
+ description: "The search query to find information about"
26
+ },
27
+ maxResults: {
28
+ type: "number",
29
+ description: "Maximum number of results to return (default: 5)",
30
+ minimum: 1,
31
+ maximum: 10
32
+ }
33
+ },
34
+ required: ["query"]
35
+ },
36
+ handler: async (params) => {
37
+ const response = await chunkTXLIY7GF_cjs.searchAnthropic(params, {
38
+ provider: "anthropic",
39
+ apiKey: config.apiKey,
40
+ maxResults: config.maxResults,
41
+ includeDomains: config.allowedDomains,
42
+ excludeDomains: config.blockedDomains,
43
+ country: config.country,
44
+ timeout: config.timeout
45
+ });
46
+ return {
47
+ success: true,
48
+ data: response,
49
+ _aiContext: chunkASV6JLYG_cjs.formatSearchResultsForAI(response)
50
+ };
51
+ }
52
+ };
53
+ }
54
+
55
+ Object.defineProperty(exports, "anthropicProvider", {
56
+ enumerable: true,
57
+ get: function () { return chunkTXLIY7GF_cjs.anthropicProvider; }
58
+ });
59
+ exports.anthropicSearch = anthropicSearch;
60
+ //# sourceMappingURL=index.cjs.map
61
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/anthropic/index.ts"],"names":["searchAnthropic","formatSearchResultsForAI"],"mappings":";;;;;;;;;;;;;;AAyEO,SAAS,eAAA,CACd,MAAA,GAAgC,EAAC,EAClB;AACf,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EACE,gJAAA;AAAA,IAEF,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY;AAAA,QACV,KAAA,EAAO;AAAA,UACL,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EAAa;AAAA,SACf;AAAA,QACA,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EAAa,kDAAA;AAAA,UACb,OAAA,EAAS,CAAA;AAAA,UACT,OAAA,EAAS;AAAA;AACX,OACF;AAAA,MACA,QAAA,EAAU,CAAC,OAAO;AAAA,KACpB;AAAA,IACA,OAAA,EAAS,OAAO,MAAA,KAAW;AACzB,MAAA,MAAM,QAAA,GAA8B,MAAMA,iCAAA,CAAgB,MAAA,EAAQ;AAAA,QAChE,QAAA,EAAU,WAAA;AAAA,QACV,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,YAAY,MAAA,CAAO,UAAA;AAAA,QACnB,gBAAgB,MAAA,CAAO,cAAA;AAAA,QACvB,gBAAgB,MAAA,CAAO,cAAA;AAAA,QACvB,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,SAAS,MAAA,CAAO;AAAA,OACjB,CAAA;AAED,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,UAAA,EAAYC,2CAAyB,QAAQ;AAAA,OAC/C;AAAA,IACF;AAAA,GACF;AACF","file":"index.cjs","sourcesContent":["/**\n * Anthropic Web Search Tool\n *\n * Tree-shakeable subpath export for Anthropic's built-in web search.\n *\n * @example\n * ```typescript\n * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';\n *\n * const webSearch = anthropicSearch({\n * apiKey: process.env.ANTHROPIC_API_KEY,\n * });\n *\n * const runtime = createRuntime({\n * tools: [webSearch],\n * });\n * ```\n */\n\nimport type { ToolDefinition } from \"../../core/types/tools\";\nimport {\n searchAnthropic,\n anthropicProvider,\n} from \"../../core/tools/webSearch/providers/anthropic\";\nimport type { WebSearchResponse } from \"../../core/tools/webSearch/types\";\nimport { formatSearchResultsForAI } from \"../../core/tools/webSearch\";\n\nexport { anthropicProvider };\n\nexport interface AnthropicSearchConfig {\n /** Anthropic API key (or set ANTHROPIC_API_KEY env var) */\n apiKey?: string;\n /** Maximum number of search results (default: 5) */\n maxResults?: number;\n /** Only include results from these domains */\n allowedDomains?: string[];\n /** Exclude results from these domains */\n blockedDomains?: string[];\n /** Country code for localized results */\n country?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n}\n\nexport interface AnthropicSearchParams {\n query: string;\n maxResults?: number;\n}\n\ntype WebSearchTool = ToolDefinition<AnthropicSearchParams>;\n\n/**\n * Anthropic Search Tool\n *\n * Uses Anthropic's built-in web_search tool via the Messages API.\n * Returns reliable citations with cited_text, url, and title.\n *\n * @example\n * ```typescript\n * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';\n *\n * const webSearch = anthropicSearch({\n * apiKey: process.env.ANTHROPIC_API_KEY,\n * maxResults: 5,\n * });\n *\n * const runtime = createRuntime({\n * provider: openai,\n * model: 'gpt-4o',\n * tools: [webSearch],\n * });\n * ```\n */\nexport function anthropicSearch(\n config: AnthropicSearchConfig = {},\n): WebSearchTool {\n return {\n name: \"web_search\",\n description:\n \"Search the web using Anthropic's native search for current information. \" +\n \"Returns results with citations including cited text, URLs, and titles.\",\n location: \"server\",\n inputSchema: {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n description: \"The search query to find information about\",\n },\n maxResults: {\n type: \"number\",\n description: \"Maximum number of results to return (default: 5)\",\n minimum: 1,\n maximum: 10,\n },\n },\n required: [\"query\"],\n },\n handler: async (params) => {\n const response: WebSearchResponse = await searchAnthropic(params, {\n provider: \"anthropic\",\n apiKey: config.apiKey,\n maxResults: config.maxResults,\n includeDomains: config.allowedDomains,\n excludeDomains: config.blockedDomains,\n country: config.country,\n timeout: config.timeout,\n });\n\n return {\n success: true,\n data: response,\n _aiContext: formatSearchResultsForAI(response),\n };\n },\n } as WebSearchTool;\n}\n"]}
@@ -0,0 +1,67 @@
1
+ import { T as ToolDefinition } from '../../tools-DDWrco4h.cjs';
2
+ export { a as anthropicProvider } from '../../anthropic-DGalr_Fw.cjs';
3
+ import '../../types-ZguuKEs_.cjs';
4
+
5
+ /**
6
+ * Anthropic Web Search Tool
7
+ *
8
+ * Tree-shakeable subpath export for Anthropic's built-in web search.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';
13
+ *
14
+ * const webSearch = anthropicSearch({
15
+ * apiKey: process.env.ANTHROPIC_API_KEY,
16
+ * });
17
+ *
18
+ * const runtime = createRuntime({
19
+ * tools: [webSearch],
20
+ * });
21
+ * ```
22
+ */
23
+
24
+ interface AnthropicSearchConfig {
25
+ /** Anthropic API key (or set ANTHROPIC_API_KEY env var) */
26
+ apiKey?: string;
27
+ /** Maximum number of search results (default: 5) */
28
+ maxResults?: number;
29
+ /** Only include results from these domains */
30
+ allowedDomains?: string[];
31
+ /** Exclude results from these domains */
32
+ blockedDomains?: string[];
33
+ /** Country code for localized results */
34
+ country?: string;
35
+ /** Request timeout in milliseconds */
36
+ timeout?: number;
37
+ }
38
+ interface AnthropicSearchParams {
39
+ query: string;
40
+ maxResults?: number;
41
+ }
42
+ type WebSearchTool = ToolDefinition<AnthropicSearchParams>;
43
+ /**
44
+ * Anthropic Search Tool
45
+ *
46
+ * Uses Anthropic's built-in web_search tool via the Messages API.
47
+ * Returns reliable citations with cited_text, url, and title.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';
52
+ *
53
+ * const webSearch = anthropicSearch({
54
+ * apiKey: process.env.ANTHROPIC_API_KEY,
55
+ * maxResults: 5,
56
+ * });
57
+ *
58
+ * const runtime = createRuntime({
59
+ * provider: openai,
60
+ * model: 'gpt-4o',
61
+ * tools: [webSearch],
62
+ * });
63
+ * ```
64
+ */
65
+ declare function anthropicSearch(config?: AnthropicSearchConfig): WebSearchTool;
66
+
67
+ export { type AnthropicSearchConfig, type AnthropicSearchParams, anthropicSearch };
@@ -0,0 +1,67 @@
1
+ import { T as ToolDefinition } from '../../tools-DDWrco4h.js';
2
+ export { a as anthropicProvider } from '../../anthropic-DkCEDYOt.js';
3
+ import '../../types-ZguuKEs_.js';
4
+
5
+ /**
6
+ * Anthropic Web Search Tool
7
+ *
8
+ * Tree-shakeable subpath export for Anthropic's built-in web search.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';
13
+ *
14
+ * const webSearch = anthropicSearch({
15
+ * apiKey: process.env.ANTHROPIC_API_KEY,
16
+ * });
17
+ *
18
+ * const runtime = createRuntime({
19
+ * tools: [webSearch],
20
+ * });
21
+ * ```
22
+ */
23
+
24
+ interface AnthropicSearchConfig {
25
+ /** Anthropic API key (or set ANTHROPIC_API_KEY env var) */
26
+ apiKey?: string;
27
+ /** Maximum number of search results (default: 5) */
28
+ maxResults?: number;
29
+ /** Only include results from these domains */
30
+ allowedDomains?: string[];
31
+ /** Exclude results from these domains */
32
+ blockedDomains?: string[];
33
+ /** Country code for localized results */
34
+ country?: string;
35
+ /** Request timeout in milliseconds */
36
+ timeout?: number;
37
+ }
38
+ interface AnthropicSearchParams {
39
+ query: string;
40
+ maxResults?: number;
41
+ }
42
+ type WebSearchTool = ToolDefinition<AnthropicSearchParams>;
43
+ /**
44
+ * Anthropic Search Tool
45
+ *
46
+ * Uses Anthropic's built-in web_search tool via the Messages API.
47
+ * Returns reliable citations with cited_text, url, and title.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';
52
+ *
53
+ * const webSearch = anthropicSearch({
54
+ * apiKey: process.env.ANTHROPIC_API_KEY,
55
+ * maxResults: 5,
56
+ * });
57
+ *
58
+ * const runtime = createRuntime({
59
+ * provider: openai,
60
+ * model: 'gpt-4o',
61
+ * tools: [webSearch],
62
+ * });
63
+ * ```
64
+ */
65
+ declare function anthropicSearch(config?: AnthropicSearchConfig): WebSearchTool;
66
+
67
+ export { type AnthropicSearchConfig, type AnthropicSearchParams, anthropicSearch };
@@ -0,0 +1,56 @@
1
+ import { formatSearchResultsForAI } from '../../chunk-XGITAEXU.js';
2
+ import '../../chunk-7W7QLZNC.js';
3
+ import '../../chunk-CEOMTQTP.js';
4
+ import '../../chunk-PPFHA6IL.js';
5
+ import '../../chunk-DABZYCVX.js';
6
+ import '../../chunk-MNDGIW47.js';
7
+ import '../../chunk-VD74IPKB.js';
8
+ import '../../chunk-53UGJNHN.js';
9
+ import { searchAnthropic } from '../../chunk-RQ74USYU.js';
10
+ export { anthropicProvider } from '../../chunk-RQ74USYU.js';
11
+ import '../../chunk-DGUM43GV.js';
12
+
13
+ // src/tools/anthropic/index.ts
14
+ function anthropicSearch(config = {}) {
15
+ return {
16
+ name: "web_search",
17
+ description: "Search the web using Anthropic's native search for current information. Returns results with citations including cited text, URLs, and titles.",
18
+ location: "server",
19
+ inputSchema: {
20
+ type: "object",
21
+ properties: {
22
+ query: {
23
+ type: "string",
24
+ description: "The search query to find information about"
25
+ },
26
+ maxResults: {
27
+ type: "number",
28
+ description: "Maximum number of results to return (default: 5)",
29
+ minimum: 1,
30
+ maximum: 10
31
+ }
32
+ },
33
+ required: ["query"]
34
+ },
35
+ handler: async (params) => {
36
+ const response = await searchAnthropic(params, {
37
+ provider: "anthropic",
38
+ apiKey: config.apiKey,
39
+ maxResults: config.maxResults,
40
+ includeDomains: config.allowedDomains,
41
+ excludeDomains: config.blockedDomains,
42
+ country: config.country,
43
+ timeout: config.timeout
44
+ });
45
+ return {
46
+ success: true,
47
+ data: response,
48
+ _aiContext: formatSearchResultsForAI(response)
49
+ };
50
+ }
51
+ };
52
+ }
53
+
54
+ export { anthropicSearch };
55
+ //# sourceMappingURL=index.js.map
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/anthropic/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAyEO,SAAS,eAAA,CACd,MAAA,GAAgC,EAAC,EAClB;AACf,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EACE,gJAAA;AAAA,IAEF,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY;AAAA,QACV,KAAA,EAAO;AAAA,UACL,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EAAa;AAAA,SACf;AAAA,QACA,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EAAa,kDAAA;AAAA,UACb,OAAA,EAAS,CAAA;AAAA,UACT,OAAA,EAAS;AAAA;AACX,OACF;AAAA,MACA,QAAA,EAAU,CAAC,OAAO;AAAA,KACpB;AAAA,IACA,OAAA,EAAS,OAAO,MAAA,KAAW;AACzB,MAAA,MAAM,QAAA,GAA8B,MAAM,eAAA,CAAgB,MAAA,EAAQ;AAAA,QAChE,QAAA,EAAU,WAAA;AAAA,QACV,QAAQ,MAAA,CAAO,MAAA;AAAA,QACf,YAAY,MAAA,CAAO,UAAA;AAAA,QACnB,gBAAgB,MAAA,CAAO,cAAA;AAAA,QACvB,gBAAgB,MAAA,CAAO,cAAA;AAAA,QACvB,SAAS,MAAA,CAAO,OAAA;AAAA,QAChB,SAAS,MAAA,CAAO;AAAA,OACjB,CAAA;AAED,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,QAAA;AAAA,QACN,UAAA,EAAY,yBAAyB,QAAQ;AAAA,OAC/C;AAAA,IACF;AAAA,GACF;AACF","file":"index.js","sourcesContent":["/**\n * Anthropic Web Search Tool\n *\n * Tree-shakeable subpath export for Anthropic's built-in web search.\n *\n * @example\n * ```typescript\n * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';\n *\n * const webSearch = anthropicSearch({\n * apiKey: process.env.ANTHROPIC_API_KEY,\n * });\n *\n * const runtime = createRuntime({\n * tools: [webSearch],\n * });\n * ```\n */\n\nimport type { ToolDefinition } from \"../../core/types/tools\";\nimport {\n searchAnthropic,\n anthropicProvider,\n} from \"../../core/tools/webSearch/providers/anthropic\";\nimport type { WebSearchResponse } from \"../../core/tools/webSearch/types\";\nimport { formatSearchResultsForAI } from \"../../core/tools/webSearch\";\n\nexport { anthropicProvider };\n\nexport interface AnthropicSearchConfig {\n /** Anthropic API key (or set ANTHROPIC_API_KEY env var) */\n apiKey?: string;\n /** Maximum number of search results (default: 5) */\n maxResults?: number;\n /** Only include results from these domains */\n allowedDomains?: string[];\n /** Exclude results from these domains */\n blockedDomains?: string[];\n /** Country code for localized results */\n country?: string;\n /** Request timeout in milliseconds */\n timeout?: number;\n}\n\nexport interface AnthropicSearchParams {\n query: string;\n maxResults?: number;\n}\n\ntype WebSearchTool = ToolDefinition<AnthropicSearchParams>;\n\n/**\n * Anthropic Search Tool\n *\n * Uses Anthropic's built-in web_search tool via the Messages API.\n * Returns reliable citations with cited_text, url, and title.\n *\n * @example\n * ```typescript\n * import { anthropicSearch } from '@yourgpt/copilot-sdk/tools/anthropic';\n *\n * const webSearch = anthropicSearch({\n * apiKey: process.env.ANTHROPIC_API_KEY,\n * maxResults: 5,\n * });\n *\n * const runtime = createRuntime({\n * provider: openai,\n * model: 'gpt-4o',\n * tools: [webSearch],\n * });\n * ```\n */\nexport function anthropicSearch(\n config: AnthropicSearchConfig = {},\n): WebSearchTool {\n return {\n name: \"web_search\",\n description:\n \"Search the web using Anthropic's native search for current information. \" +\n \"Returns results with citations including cited text, URLs, and titles.\",\n location: \"server\",\n inputSchema: {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n description: \"The search query to find information about\",\n },\n maxResults: {\n type: \"number\",\n description: \"Maximum number of results to return (default: 5)\",\n minimum: 1,\n maximum: 10,\n },\n },\n required: [\"query\"],\n },\n handler: async (params) => {\n const response: WebSearchResponse = await searchAnthropic(params, {\n provider: \"anthropic\",\n apiKey: config.apiKey,\n maxResults: config.maxResults,\n includeDomains: config.allowedDomains,\n excludeDomains: config.blockedDomains,\n country: config.country,\n timeout: config.timeout,\n });\n\n return {\n success: true,\n data: response,\n _aiContext: formatSearchResultsForAI(response),\n };\n },\n } as WebSearchTool;\n}\n"]}
@@ -0,0 +1,85 @@
1
+ 'use strict';
2
+
3
+ var chunkCEKAYA2Q_cjs = require('../../chunk-CEKAYA2Q.cjs');
4
+ var chunkASV6JLYG_cjs = require('../../chunk-ASV6JLYG.cjs');
5
+ require('../../chunk-CBAHCI4R.cjs');
6
+ require('../../chunk-MEBXW75C.cjs');
7
+ var chunkW73FBYIH_cjs = require('../../chunk-W73FBYIH.cjs');
8
+ require('../../chunk-2FAWEBZS.cjs');
9
+ require('../../chunk-6T5XXJEP.cjs');
10
+ require('../../chunk-GANCV72Z.cjs');
11
+ require('../../chunk-XWOHNY3F.cjs');
12
+ require('../../chunk-TXLIY7GF.cjs');
13
+ require('../../chunk-JEQ2X3Z6.cjs');
14
+
15
+ // src/tools/brave/index.ts
16
+ function braveSearch(config) {
17
+ return {
18
+ name: "web_search",
19
+ description: `Search the web using Brave Search for current information. Use this when the user asks about:
20
+ - Recent events, news, or current affairs
21
+ - Real-time data (prices, weather, stocks, sports scores)
22
+ - Information that might have changed after your training cutoff
23
+ - Facts that need verification with current sources
24
+ - Research topics that require up-to-date information`,
25
+ location: "server",
26
+ title: (args) => `Searching for "${args.query}"`,
27
+ executingTitle: (args) => `Searching the web for "${args.query}"...`,
28
+ completedTitle: (args) => `Found results for "${args.query}"`,
29
+ inputSchema: {
30
+ type: "object",
31
+ properties: {
32
+ query: {
33
+ type: "string",
34
+ description: "The search query to find relevant information"
35
+ },
36
+ maxResults: {
37
+ type: "number",
38
+ description: "Maximum number of results to return (default: 5, max: 10)",
39
+ minimum: 1,
40
+ maximum: 10
41
+ }
42
+ },
43
+ required: ["query"]
44
+ },
45
+ needsApproval: false,
46
+ aiResponseMode: "full",
47
+ handler: async (params) => {
48
+ try {
49
+ const response = await chunkW73FBYIH_cjs.searchBrave(
50
+ {
51
+ query: params.query,
52
+ maxResults: params.maxResults ?? config.maxResults ?? 5
53
+ },
54
+ {
55
+ provider: "brave",
56
+ apiKey: config.apiKey,
57
+ country: config.country,
58
+ language: config.language,
59
+ includeDomains: config.includeDomains,
60
+ excludeDomains: config.excludeDomains,
61
+ timeout: config.timeout
62
+ }
63
+ );
64
+ const aiContext = chunkASV6JLYG_cjs.formatSearchResultsForAI(response);
65
+ return {
66
+ success: true,
67
+ message: chunkASV6JLYG_cjs.summarizeSearchResults(response),
68
+ data: response,
69
+ _aiContext: aiContext
70
+ };
71
+ } catch (error) {
72
+ const errorMessage = error instanceof Error ? error.message : "Web search failed";
73
+ return chunkCEKAYA2Q_cjs.failure(errorMessage);
74
+ }
75
+ }
76
+ };
77
+ }
78
+
79
+ Object.defineProperty(exports, "braveProvider", {
80
+ enumerable: true,
81
+ get: function () { return chunkW73FBYIH_cjs.braveProvider; }
82
+ });
83
+ exports.braveSearch = braveSearch;
84
+ //# sourceMappingURL=index.cjs.map
85
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tools/brave/index.ts"],"names":["searchBrave","formatSearchResultsForAI","summarizeSearchResults","failure"],"mappings":";;;;;;;;;;;;;;;AAqGO,SAAS,YACd,MAAA,EACmC;AACnC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qDAAA,CAAA;AAAA,IAOb,QAAA,EAAU,QAAA;AAAA,IAEV,KAAA,EAAO,CAAC,IAAA,KAAS,CAAA,eAAA,EAAkB,KAAK,KAAK,CAAA,CAAA,CAAA;AAAA,IAC7C,cAAA,EAAgB,CAAC,IAAA,KAAS,CAAA,uBAAA,EAA0B,KAAK,KAAK,CAAA,IAAA,CAAA;AAAA,IAC9D,cAAA,EAAgB,CAAC,IAAA,KAAS,CAAA,mBAAA,EAAsB,KAAK,KAAK,CAAA,CAAA,CAAA;AAAA,IAE1D,WAAA,EAAa;AAAA,MACX,IAAA,EAAM,QAAA;AAAA,MACN,UAAA,EAAY;AAAA,QACV,KAAA,EAAO;AAAA,UACL,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EAAa;AAAA,SACf;AAAA,QACA,UAAA,EAAY;AAAA,UACV,IAAA,EAAM,QAAA;AAAA,UACN,WAAA,EACE,2DAAA;AAAA,UACF,OAAA,EAAS,CAAA;AAAA,UACT,OAAA,EAAS;AAAA;AACX,OACF;AAAA,MACA,QAAA,EAAU,CAAC,OAAO;AAAA,KACpB;AAAA,IAEA,aAAA,EAAe,KAAA;AAAA,IACf,cAAA,EAAgB,MAAA;AAAA,IAEhB,OAAA,EAAS,OAAO,MAAA,KAAW;AACzB,MAAA,IAAI;AACF,QAAA,MAAM,WAA8B,MAAMA,6BAAA;AAAA,UACxC;AAAA,YACE,OAAO,MAAA,CAAO,KAAA;AAAA,YACd,UAAA,EAAY,MAAA,CAAO,UAAA,IAAc,MAAA,CAAO,UAAA,IAAc;AAAA,WACxD;AAAA,UACA;AAAA,YACE,QAAA,EAAU,OAAA;AAAA,YACV,QAAQ,MAAA,CAAO,MAAA;AAAA,YACf,SAAS,MAAA,CAAO,OAAA;AAAA,YAChB,UAAU,MAAA,CAAO,QAAA;AAAA,YACjB,gBAAgB,MAAA,CAAO,cAAA;AAAA,YACvB,gBAAgB,MAAA,CAAO,cAAA;AAAA,YACvB,SAAS,MAAA,CAAO;AAAA;AAClB,SACF;AAEA,QAAA,MAAM,SAAA,GAAYC,2CAAyB,QAAQ,CAAA;AAEnD,QAAA,OAAO;AAAA,UACL,OAAA,EAAS,IAAA;AAAA,UACT,OAAA,EAASC,yCAAuB,QAAQ,CAAA;AAAA,UACxC,IAAA,EAAM,QAAA;AAAA,UACN,UAAA,EAAY;AAAA,SACd;AAAA,MACF,SAAS,KAAA,EAAO;AACd,QAAA,MAAM,YAAA,GACJ,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,mBAAA;AAC3C,QAAA,OAAOC,0BAAQ,YAAY,CAAA;AAAA,MAC7B;AAAA,IACF;AAAA,GACF;AACF","file":"index.cjs","sourcesContent":["/**\n * Brave Search Tool\n *\n * Tree-shakeable import for Brave web search provider.\n * Only imports Brave code - no other providers bundled.\n *\n * @example\n * ```typescript\n * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';\n *\n * const webSearch = braveSearch({\n * apiKey: process.env.BRAVE_API_KEY,\n * });\n *\n * const runtime = createRuntime({\n * tools: [webSearch],\n * });\n * ```\n *\n * @see https://brave.com/search/api/\n * @module @yourgpt/copilot-sdk/tools/brave\n */\n\nimport type { ToolDefinition } from \"../../core/types/tools\";\nimport { failure } from \"../../core/types/tools\";\nimport {\n searchBrave,\n braveProvider,\n} from \"../../core/tools/webSearch/providers/brave\";\nimport {\n formatSearchResultsForAI,\n summarizeSearchResults,\n} from \"../../core/tools/webSearch\";\nimport type { WebSearchResponse } from \"../../core/tools/webSearch/types\";\n\n// Re-export provider for direct access\nexport { braveProvider };\n\n/**\n * Brave search configuration\n */\nexport interface BraveSearchConfig {\n /** Brave Search API key - get one at https://brave.com/search/api/ */\n apiKey: string;\n /** Maximum number of results (default: 5) */\n maxResults?: number;\n /** Country code for localized results (e.g., 'us', 'gb', 'de') */\n country?: string;\n /** Language code for results (e.g., 'en', 'es', 'fr') */\n language?: string;\n /** Only include results from these domains */\n includeDomains?: string[];\n /** Exclude results from these domains */\n excludeDomains?: string[];\n /** Request timeout in milliseconds */\n timeout?: number;\n}\n\n/**\n * Search parameters passed to the tool\n */\ninterface BraveSearchParams {\n /** The search query */\n query: string;\n /** Maximum number of results (overrides config) */\n maxResults?: number;\n}\n\n/**\n * Create a Brave web search tool\n *\n * Brave Search is a privacy-focused search engine with its own index.\n * Provides independent search results without tracking.\n *\n * @param config - Brave configuration including API key\n * @returns A configured tool definition ready to use\n *\n * @example\n * ```typescript\n * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';\n *\n * // Basic usage\n * const webSearch = braveSearch({\n * apiKey: process.env.BRAVE_API_KEY,\n * });\n *\n * // With locale settings\n * const webSearch = braveSearch({\n * apiKey: process.env.BRAVE_API_KEY,\n * country: 'us',\n * language: 'en',\n * maxResults: 10,\n * });\n *\n * const runtime = createRuntime({\n * provider: openai,\n * model: 'gpt-4o',\n * tools: [webSearch],\n * });\n * ```\n */\nexport function braveSearch(\n config: BraveSearchConfig,\n): ToolDefinition<BraveSearchParams> {\n return {\n name: \"web_search\",\n description: `Search the web using Brave Search for current information. Use this when the user asks about:\n- Recent events, news, or current affairs\n- Real-time data (prices, weather, stocks, sports scores)\n- Information that might have changed after your training cutoff\n- Facts that need verification with current sources\n- Research topics that require up-to-date information`,\n\n location: \"server\",\n\n title: (args) => `Searching for \"${args.query}\"`,\n executingTitle: (args) => `Searching the web for \"${args.query}\"...`,\n completedTitle: (args) => `Found results for \"${args.query}\"`,\n\n inputSchema: {\n type: \"object\",\n properties: {\n query: {\n type: \"string\",\n description: \"The search query to find relevant information\",\n },\n maxResults: {\n type: \"number\",\n description:\n \"Maximum number of results to return (default: 5, max: 10)\",\n minimum: 1,\n maximum: 10,\n },\n },\n required: [\"query\"],\n },\n\n needsApproval: false,\n aiResponseMode: \"full\",\n\n handler: async (params) => {\n try {\n const response: WebSearchResponse = await searchBrave(\n {\n query: params.query,\n maxResults: params.maxResults ?? config.maxResults ?? 5,\n },\n {\n provider: \"brave\",\n apiKey: config.apiKey,\n country: config.country,\n language: config.language,\n includeDomains: config.includeDomains,\n excludeDomains: config.excludeDomains,\n timeout: config.timeout,\n },\n );\n\n const aiContext = formatSearchResultsForAI(response);\n\n return {\n success: true,\n message: summarizeSearchResults(response),\n data: response,\n _aiContext: aiContext,\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Web search failed\";\n return failure(errorMessage);\n }\n },\n };\n}\n"]}
@@ -0,0 +1,91 @@
1
+ import { T as ToolDefinition } from '../../tools-DDWrco4h.cjs';
2
+ export { b as braveProvider } from '../../brave-DdnWb7Gb.cjs';
3
+ import '../../types-ZguuKEs_.cjs';
4
+
5
+ /**
6
+ * Brave Search Tool
7
+ *
8
+ * Tree-shakeable import for Brave web search provider.
9
+ * Only imports Brave code - no other providers bundled.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';
14
+ *
15
+ * const webSearch = braveSearch({
16
+ * apiKey: process.env.BRAVE_API_KEY,
17
+ * });
18
+ *
19
+ * const runtime = createRuntime({
20
+ * tools: [webSearch],
21
+ * });
22
+ * ```
23
+ *
24
+ * @see https://brave.com/search/api/
25
+ * @module @yourgpt/copilot-sdk/tools/brave
26
+ */
27
+
28
+ /**
29
+ * Brave search configuration
30
+ */
31
+ interface BraveSearchConfig {
32
+ /** Brave Search API key - get one at https://brave.com/search/api/ */
33
+ apiKey: string;
34
+ /** Maximum number of results (default: 5) */
35
+ maxResults?: number;
36
+ /** Country code for localized results (e.g., 'us', 'gb', 'de') */
37
+ country?: string;
38
+ /** Language code for results (e.g., 'en', 'es', 'fr') */
39
+ language?: string;
40
+ /** Only include results from these domains */
41
+ includeDomains?: string[];
42
+ /** Exclude results from these domains */
43
+ excludeDomains?: string[];
44
+ /** Request timeout in milliseconds */
45
+ timeout?: number;
46
+ }
47
+ /**
48
+ * Search parameters passed to the tool
49
+ */
50
+ interface BraveSearchParams {
51
+ /** The search query */
52
+ query: string;
53
+ /** Maximum number of results (overrides config) */
54
+ maxResults?: number;
55
+ }
56
+ /**
57
+ * Create a Brave web search tool
58
+ *
59
+ * Brave Search is a privacy-focused search engine with its own index.
60
+ * Provides independent search results without tracking.
61
+ *
62
+ * @param config - Brave configuration including API key
63
+ * @returns A configured tool definition ready to use
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';
68
+ *
69
+ * // Basic usage
70
+ * const webSearch = braveSearch({
71
+ * apiKey: process.env.BRAVE_API_KEY,
72
+ * });
73
+ *
74
+ * // With locale settings
75
+ * const webSearch = braveSearch({
76
+ * apiKey: process.env.BRAVE_API_KEY,
77
+ * country: 'us',
78
+ * language: 'en',
79
+ * maxResults: 10,
80
+ * });
81
+ *
82
+ * const runtime = createRuntime({
83
+ * provider: openai,
84
+ * model: 'gpt-4o',
85
+ * tools: [webSearch],
86
+ * });
87
+ * ```
88
+ */
89
+ declare function braveSearch(config: BraveSearchConfig): ToolDefinition<BraveSearchParams>;
90
+
91
+ export { type BraveSearchConfig, braveSearch };
@@ -0,0 +1,91 @@
1
+ import { T as ToolDefinition } from '../../tools-DDWrco4h.js';
2
+ export { b as braveProvider } from '../../brave-DsI9n7Wr.js';
3
+ import '../../types-ZguuKEs_.js';
4
+
5
+ /**
6
+ * Brave Search Tool
7
+ *
8
+ * Tree-shakeable import for Brave web search provider.
9
+ * Only imports Brave code - no other providers bundled.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';
14
+ *
15
+ * const webSearch = braveSearch({
16
+ * apiKey: process.env.BRAVE_API_KEY,
17
+ * });
18
+ *
19
+ * const runtime = createRuntime({
20
+ * tools: [webSearch],
21
+ * });
22
+ * ```
23
+ *
24
+ * @see https://brave.com/search/api/
25
+ * @module @yourgpt/copilot-sdk/tools/brave
26
+ */
27
+
28
+ /**
29
+ * Brave search configuration
30
+ */
31
+ interface BraveSearchConfig {
32
+ /** Brave Search API key - get one at https://brave.com/search/api/ */
33
+ apiKey: string;
34
+ /** Maximum number of results (default: 5) */
35
+ maxResults?: number;
36
+ /** Country code for localized results (e.g., 'us', 'gb', 'de') */
37
+ country?: string;
38
+ /** Language code for results (e.g., 'en', 'es', 'fr') */
39
+ language?: string;
40
+ /** Only include results from these domains */
41
+ includeDomains?: string[];
42
+ /** Exclude results from these domains */
43
+ excludeDomains?: string[];
44
+ /** Request timeout in milliseconds */
45
+ timeout?: number;
46
+ }
47
+ /**
48
+ * Search parameters passed to the tool
49
+ */
50
+ interface BraveSearchParams {
51
+ /** The search query */
52
+ query: string;
53
+ /** Maximum number of results (overrides config) */
54
+ maxResults?: number;
55
+ }
56
+ /**
57
+ * Create a Brave web search tool
58
+ *
59
+ * Brave Search is a privacy-focused search engine with its own index.
60
+ * Provides independent search results without tracking.
61
+ *
62
+ * @param config - Brave configuration including API key
63
+ * @returns A configured tool definition ready to use
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * import { braveSearch } from '@yourgpt/copilot-sdk/tools/brave';
68
+ *
69
+ * // Basic usage
70
+ * const webSearch = braveSearch({
71
+ * apiKey: process.env.BRAVE_API_KEY,
72
+ * });
73
+ *
74
+ * // With locale settings
75
+ * const webSearch = braveSearch({
76
+ * apiKey: process.env.BRAVE_API_KEY,
77
+ * country: 'us',
78
+ * language: 'en',
79
+ * maxResults: 10,
80
+ * });
81
+ *
82
+ * const runtime = createRuntime({
83
+ * provider: openai,
84
+ * model: 'gpt-4o',
85
+ * tools: [webSearch],
86
+ * });
87
+ * ```
88
+ */
89
+ declare function braveSearch(config: BraveSearchConfig): ToolDefinition<BraveSearchParams>;
90
+
91
+ export { type BraveSearchConfig, braveSearch };