mastra-scavio 0.1.0

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.
package/README.md ADDED
@@ -0,0 +1,51 @@
1
+ # mastra-scavio
2
+
3
+ [Scavio](https://scavio.dev) real-time search tools for [Mastra](https://mastra.ai) agents — Google, YouTube, Amazon, Walmart, Reddit, TikTok, and Instagram, with one API key.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install mastra-scavio @mastra/core zod
9
+ ```
10
+
11
+ ## Setup
12
+
13
+ Get a Scavio API key from the [Scavio Dashboard](https://dashboard.scavio.dev) (new accounts get free credits, no credit card). Set `SCAVIO_API_KEY` or pass `{ apiKey }`.
14
+
15
+ ## Usage
16
+
17
+ ```typescript
18
+ import { Agent } from '@mastra/core/agent';
19
+ import { createScavioTools } from 'mastra-scavio';
20
+
21
+ const agent = new Agent({
22
+ id: 'web-search-agent',
23
+ name: 'Web Search Agent',
24
+ model: 'anthropic/claude-sonnet-4-6',
25
+ instructions: 'Search the web, shopping sites, and social platforms with Scavio.',
26
+ tools: createScavioTools(), // reads SCAVIO_API_KEY
27
+ });
28
+ ```
29
+
30
+ Use a single tool instead of the full set:
31
+
32
+ ```typescript
33
+ import { createScavioGoogleSearchTool } from 'mastra-scavio';
34
+
35
+ const agent = new Agent({
36
+ id: 'search-agent',
37
+ model: 'anthropic/claude-sonnet-4-6',
38
+ instructions: 'Search Google with Scavio.',
39
+ tools: { googleSearch: createScavioGoogleSearchTool({ apiKey: process.env.SCAVIO_API_KEY }) },
40
+ });
41
+ ```
42
+
43
+ ## Tools
44
+
45
+ `createScavioTools()` returns: `scavioGoogleSearch`, `scavioAmazonSearch`, `scavioAmazonProduct`, `scavioWalmartSearch`, `scavioWalmartProduct`, `scavioYoutubeSearch`, `scavioYoutubeMetadata`, `scavioRedditSearch`, `scavioRedditPost`, `scavioTiktokSearch`, `scavioTiktokProfile`, `scavioInstagramSearch`, `scavioInstagramProfile`.
46
+
47
+ Each tool returns the structured Scavio JSON response. The full Scavio API (33 endpoints) is also available directly via the [`scavio`](https://www.npmjs.com/package/scavio) SDK or the [MCP server](https://scavio.dev/docs).
48
+
49
+ ## Credits
50
+
51
+ Most calls cost 1 credit. Reddit and Instagram cost 2 credits, and Google costs 2 unless `light_request` is set (1 credit). See [scavio.dev/docs](https://scavio.dev/docs).
package/dist/index.cjs ADDED
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ createScavioAmazonProductTool: () => createScavioAmazonProductTool,
24
+ createScavioAmazonSearchTool: () => createScavioAmazonSearchTool,
25
+ createScavioGoogleSearchTool: () => createScavioGoogleSearchTool,
26
+ createScavioInstagramProfileTool: () => createScavioInstagramProfileTool,
27
+ createScavioInstagramSearchTool: () => createScavioInstagramSearchTool,
28
+ createScavioRedditPostTool: () => createScavioRedditPostTool,
29
+ createScavioRedditSearchTool: () => createScavioRedditSearchTool,
30
+ createScavioTiktokProfileTool: () => createScavioTiktokProfileTool,
31
+ createScavioTiktokSearchTool: () => createScavioTiktokSearchTool,
32
+ createScavioTools: () => createScavioTools,
33
+ createScavioWalmartProductTool: () => createScavioWalmartProductTool,
34
+ createScavioWalmartSearchTool: () => createScavioWalmartSearchTool,
35
+ createScavioYoutubeMetadataTool: () => createScavioYoutubeMetadataTool,
36
+ createScavioYoutubeSearchTool: () => createScavioYoutubeSearchTool,
37
+ getScavioClient: () => getScavioClient
38
+ });
39
+ module.exports = __toCommonJS(index_exports);
40
+
41
+ // src/client.ts
42
+ var import_scavio = require("scavio");
43
+ function getScavioClient(config) {
44
+ const apiKey = config?.apiKey ?? process.env.SCAVIO_API_KEY;
45
+ if (!apiKey) {
46
+ throw new Error("Scavio API key is required. Pass { apiKey } or set SCAVIO_API_KEY env var.");
47
+ }
48
+ return new import_scavio.Scavio({ apiKey });
49
+ }
50
+
51
+ // src/google.ts
52
+ var import_tools = require("@mastra/core/tools");
53
+ var import_zod = require("zod");
54
+ var outputSchema = import_zod.z.record(import_zod.z.string(), import_zod.z.unknown());
55
+ function createScavioGoogleSearchTool(config) {
56
+ let client = null;
57
+ const getClient = () => client ??= getScavioClient(config);
58
+ return (0, import_tools.createTool)({
59
+ id: "scavio-google-search",
60
+ description: "Search Google in real time via Scavio. Returns organic results, knowledge graph, related questions, news, and more as structured JSON.",
61
+ inputSchema: import_zod.z.object({
62
+ query: import_zod.z.string().describe("The search query"),
63
+ country_code: import_zod.z.string().optional().describe('Two-letter country code, e.g. "us"'),
64
+ language: import_zod.z.string().optional().describe('Two-letter language code, e.g. "en"'),
65
+ page: import_zod.z.number().optional().describe("Result page number (1-based)"),
66
+ search_type: import_zod.z.enum(["classic", "news", "maps", "images", "lens"]).optional().describe("The Google vertical to search"),
67
+ light_request: import_zod.z.boolean().optional().describe("Use the cheaper, lighter response (1 credit instead of 2)")
68
+ }),
69
+ outputSchema,
70
+ execute: async (input) => getClient().google.search(input)
71
+ });
72
+ }
73
+
74
+ // src/amazon.ts
75
+ var import_tools2 = require("@mastra/core/tools");
76
+ var import_zod2 = require("zod");
77
+ var outputSchema2 = import_zod2.z.record(import_zod2.z.string(), import_zod2.z.unknown());
78
+ function createScavioAmazonSearchTool(config) {
79
+ let client = null;
80
+ const getClient = () => client ??= getScavioClient(config);
81
+ return (0, import_tools2.createTool)({
82
+ id: "scavio-amazon-search",
83
+ description: "Search Amazon for products via Scavio. Returns matching products as structured JSON.",
84
+ inputSchema: import_zod2.z.object({
85
+ query: import_zod2.z.string().describe("The product search query"),
86
+ domain: import_zod2.z.string().optional().describe('Amazon domain, e.g. "amazon.com"'),
87
+ country: import_zod2.z.string().optional().describe("Two-letter country code"),
88
+ sort_by: import_zod2.z.string().optional().describe("Sort order for results")
89
+ }),
90
+ outputSchema: outputSchema2,
91
+ execute: async (input) => getClient().amazon.search(input)
92
+ });
93
+ }
94
+ function createScavioAmazonProductTool(config) {
95
+ let client = null;
96
+ const getClient = () => client ??= getScavioClient(config);
97
+ return (0, import_tools2.createTool)({
98
+ id: "scavio-amazon-product",
99
+ description: "Fetch full Amazon product details by ASIN via Scavio.",
100
+ inputSchema: import_zod2.z.object({
101
+ asin: import_zod2.z.string().describe("Amazon Standard Identification Number (ASIN)"),
102
+ domain: import_zod2.z.string().optional().describe('Amazon domain, e.g. "amazon.com"'),
103
+ country: import_zod2.z.string().optional().describe("Two-letter country code")
104
+ }),
105
+ outputSchema: outputSchema2,
106
+ execute: async (input) => getClient().amazon.product(input)
107
+ });
108
+ }
109
+
110
+ // src/walmart.ts
111
+ var import_tools3 = require("@mastra/core/tools");
112
+ var import_zod3 = require("zod");
113
+ var outputSchema3 = import_zod3.z.record(import_zod3.z.string(), import_zod3.z.unknown());
114
+ function createScavioWalmartSearchTool(config) {
115
+ let client = null;
116
+ const getClient = () => client ??= getScavioClient(config);
117
+ return (0, import_tools3.createTool)({
118
+ id: "scavio-walmart-search",
119
+ description: "Search Walmart for products via Scavio. Returns matching products as structured JSON.",
120
+ inputSchema: import_zod3.z.object({
121
+ query: import_zod3.z.string().describe("The product search query"),
122
+ sort_by: import_zod3.z.string().optional().describe("Sort order for results"),
123
+ min_price: import_zod3.z.number().optional().describe("Minimum price filter"),
124
+ max_price: import_zod3.z.number().optional().describe("Maximum price filter")
125
+ }),
126
+ outputSchema: outputSchema3,
127
+ execute: async (input) => getClient().walmart.search(input)
128
+ });
129
+ }
130
+ function createScavioWalmartProductTool(config) {
131
+ let client = null;
132
+ const getClient = () => client ??= getScavioClient(config);
133
+ return (0, import_tools3.createTool)({
134
+ id: "scavio-walmart-product",
135
+ description: "Fetch full Walmart product details by product id via Scavio.",
136
+ inputSchema: import_zod3.z.object({
137
+ product_id: import_zod3.z.string().describe("Walmart product id")
138
+ }),
139
+ outputSchema: outputSchema3,
140
+ execute: async (input) => getClient().walmart.product(input)
141
+ });
142
+ }
143
+
144
+ // src/youtube.ts
145
+ var import_tools4 = require("@mastra/core/tools");
146
+ var import_zod4 = require("zod");
147
+ var outputSchema4 = import_zod4.z.record(import_zod4.z.string(), import_zod4.z.unknown());
148
+ function createScavioYoutubeSearchTool(config) {
149
+ let client = null;
150
+ const getClient = () => client ??= getScavioClient(config);
151
+ return (0, import_tools4.createTool)({
152
+ id: "scavio-youtube-search",
153
+ description: "Search YouTube for videos, channels, or playlists via Scavio.",
154
+ inputSchema: import_zod4.z.object({
155
+ query: import_zod4.z.string().describe("The video search query"),
156
+ upload_date: import_zod4.z.string().optional().describe('Upload date filter, e.g. "today", "week", "month"'),
157
+ type: import_zod4.z.string().optional().describe('Result type, e.g. "video", "channel", "playlist"'),
158
+ sort_by: import_zod4.z.string().optional().describe("Sort order for results")
159
+ }),
160
+ outputSchema: outputSchema4,
161
+ execute: async (input) => getClient().youtube.search(input)
162
+ });
163
+ }
164
+ function createScavioYoutubeMetadataTool(config) {
165
+ let client = null;
166
+ const getClient = () => client ??= getScavioClient(config);
167
+ return (0, import_tools4.createTool)({
168
+ id: "scavio-youtube-metadata",
169
+ description: "Fetch metadata for a YouTube video by id via Scavio.",
170
+ inputSchema: import_zod4.z.object({
171
+ video_id: import_zod4.z.string().describe("YouTube video id")
172
+ }),
173
+ outputSchema: outputSchema4,
174
+ execute: async (input) => getClient().youtube.metadata(input)
175
+ });
176
+ }
177
+
178
+ // src/reddit.ts
179
+ var import_tools5 = require("@mastra/core/tools");
180
+ var import_zod5 = require("zod");
181
+ var outputSchema5 = import_zod5.z.record(import_zod5.z.string(), import_zod5.z.unknown());
182
+ function createScavioRedditSearchTool(config) {
183
+ let client = null;
184
+ const getClient = () => client ??= getScavioClient(config);
185
+ return (0, import_tools5.createTool)({
186
+ id: "scavio-reddit-search",
187
+ description: "Search Reddit posts, subreddits, or users via Scavio.",
188
+ inputSchema: import_zod5.z.object({
189
+ query: import_zod5.z.string().describe("The Reddit search query"),
190
+ type: import_zod5.z.string().optional().describe('Search type, e.g. "posts", "subreddits", "users"'),
191
+ sort: import_zod5.z.string().optional().describe('Sort order, e.g. "relevance", "new", "top"')
192
+ }),
193
+ outputSchema: outputSchema5,
194
+ execute: async (input) => getClient().reddit.search(input)
195
+ });
196
+ }
197
+ function createScavioRedditPostTool(config) {
198
+ let client = null;
199
+ const getClient = () => client ??= getScavioClient(config);
200
+ return (0, import_tools5.createTool)({
201
+ id: "scavio-reddit-post",
202
+ description: "Fetch a Reddit post and its comment thread by URL via Scavio.",
203
+ inputSchema: import_zod5.z.object({
204
+ url: import_zod5.z.string().describe("Full URL of the Reddit post")
205
+ }),
206
+ outputSchema: outputSchema5,
207
+ execute: async (input) => getClient().reddit.post(input)
208
+ });
209
+ }
210
+
211
+ // src/tiktok.ts
212
+ var import_tools6 = require("@mastra/core/tools");
213
+ var import_zod6 = require("zod");
214
+ var outputSchema6 = import_zod6.z.record(import_zod6.z.string(), import_zod6.z.unknown());
215
+ function createScavioTiktokSearchTool(config) {
216
+ let client = null;
217
+ const getClient = () => client ??= getScavioClient(config);
218
+ return (0, import_tools6.createTool)({
219
+ id: "scavio-tiktok-search",
220
+ description: "Search TikTok videos by keyword via Scavio.",
221
+ inputSchema: import_zod6.z.object({
222
+ keyword: import_zod6.z.string().describe("Search keyword"),
223
+ count: import_zod6.z.number().optional().describe("Number of videos to return"),
224
+ sort_type: import_zod6.z.string().optional().describe("Sort order for results")
225
+ }),
226
+ outputSchema: outputSchema6,
227
+ execute: async (input) => getClient().tiktok.searchVideos(input)
228
+ });
229
+ }
230
+ function createScavioTiktokProfileTool(config) {
231
+ let client = null;
232
+ const getClient = () => client ??= getScavioClient(config);
233
+ return (0, import_tools6.createTool)({
234
+ id: "scavio-tiktok-profile",
235
+ description: "Fetch a TikTok user profile by username via Scavio.",
236
+ inputSchema: import_zod6.z.object({
237
+ username: import_zod6.z.string().optional().describe("TikTok username (without @)"),
238
+ sec_user_id: import_zod6.z.string().optional().describe("TikTok secUid")
239
+ }),
240
+ outputSchema: outputSchema6,
241
+ execute: async (input) => getClient().tiktok.profile(input)
242
+ });
243
+ }
244
+
245
+ // src/instagram.ts
246
+ var import_tools7 = require("@mastra/core/tools");
247
+ var import_zod7 = require("zod");
248
+ var outputSchema7 = import_zod7.z.record(import_zod7.z.string(), import_zod7.z.unknown());
249
+ function createScavioInstagramSearchTool(config) {
250
+ let client = null;
251
+ const getClient = () => client ??= getScavioClient(config);
252
+ return (0, import_tools7.createTool)({
253
+ id: "scavio-instagram-search",
254
+ description: "Search Instagram users by keyword via Scavio.",
255
+ inputSchema: import_zod7.z.object({
256
+ keyword: import_zod7.z.string().describe("Search keyword")
257
+ }),
258
+ outputSchema: outputSchema7,
259
+ execute: async (input) => getClient().instagram.searchUsers(input)
260
+ });
261
+ }
262
+ function createScavioInstagramProfileTool(config) {
263
+ let client = null;
264
+ const getClient = () => client ??= getScavioClient(config);
265
+ return (0, import_tools7.createTool)({
266
+ id: "scavio-instagram-profile",
267
+ description: "Fetch an Instagram profile by username via Scavio.",
268
+ inputSchema: import_zod7.z.object({
269
+ username: import_zod7.z.string().optional().describe("Instagram username"),
270
+ user_id: import_zod7.z.string().optional().describe("Instagram user id")
271
+ }),
272
+ outputSchema: outputSchema7,
273
+ execute: async (input) => getClient().instagram.profile(input)
274
+ });
275
+ }
276
+
277
+ // src/tools.ts
278
+ function createScavioTools(config) {
279
+ return {
280
+ scavioGoogleSearch: createScavioGoogleSearchTool(config),
281
+ scavioAmazonSearch: createScavioAmazonSearchTool(config),
282
+ scavioAmazonProduct: createScavioAmazonProductTool(config),
283
+ scavioWalmartSearch: createScavioWalmartSearchTool(config),
284
+ scavioWalmartProduct: createScavioWalmartProductTool(config),
285
+ scavioYoutubeSearch: createScavioYoutubeSearchTool(config),
286
+ scavioYoutubeMetadata: createScavioYoutubeMetadataTool(config),
287
+ scavioRedditSearch: createScavioRedditSearchTool(config),
288
+ scavioRedditPost: createScavioRedditPostTool(config),
289
+ scavioTiktokSearch: createScavioTiktokSearchTool(config),
290
+ scavioTiktokProfile: createScavioTiktokProfileTool(config),
291
+ scavioInstagramSearch: createScavioInstagramSearchTool(config),
292
+ scavioInstagramProfile: createScavioInstagramProfileTool(config)
293
+ };
294
+ }
295
+ // Annotate the CommonJS export names for ESM import in node:
296
+ 0 && (module.exports = {
297
+ createScavioAmazonProductTool,
298
+ createScavioAmazonSearchTool,
299
+ createScavioGoogleSearchTool,
300
+ createScavioInstagramProfileTool,
301
+ createScavioInstagramSearchTool,
302
+ createScavioRedditPostTool,
303
+ createScavioRedditSearchTool,
304
+ createScavioTiktokProfileTool,
305
+ createScavioTiktokSearchTool,
306
+ createScavioTools,
307
+ createScavioWalmartProductTool,
308
+ createScavioWalmartSearchTool,
309
+ createScavioYoutubeMetadataTool,
310
+ createScavioYoutubeSearchTool,
311
+ getScavioClient
312
+ });
313
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/client.ts","../src/google.ts","../src/amazon.ts","../src/walmart.ts","../src/youtube.ts","../src/reddit.ts","../src/tiktok.ts","../src/instagram.ts","../src/tools.ts"],"sourcesContent":["export { getScavioClient, type ScavioClientOptions, type ScavioClient } from './client.js';\nexport { createScavioGoogleSearchTool } from './google.js';\nexport { createScavioAmazonSearchTool, createScavioAmazonProductTool } from './amazon.js';\nexport { createScavioWalmartSearchTool, createScavioWalmartProductTool } from './walmart.js';\nexport { createScavioYoutubeSearchTool, createScavioYoutubeMetadataTool } from './youtube.js';\nexport { createScavioRedditSearchTool, createScavioRedditPostTool } from './reddit.js';\nexport { createScavioTiktokSearchTool, createScavioTiktokProfileTool } from './tiktok.js';\nexport { createScavioInstagramSearchTool, createScavioInstagramProfileTool } from './instagram.js';\nexport { createScavioTools } from './tools.js';\n","import { Scavio } from 'scavio';\n\nexport interface ScavioClientOptions {\n /** Scavio API key. Falls back to the `SCAVIO_API_KEY` environment variable. */\n apiKey?: string;\n}\n\nexport type ScavioClient = Scavio;\n\nexport function getScavioClient(config?: ScavioClientOptions): ScavioClient {\n const apiKey = config?.apiKey ?? process.env.SCAVIO_API_KEY;\n if (!apiKey) {\n throw new Error('Scavio API key is required. Pass { apiKey } or set SCAVIO_API_KEY env var.');\n }\n return new Scavio({ apiKey });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioGoogleSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-google-search',\n description:\n 'Search Google in real time via Scavio. Returns organic results, knowledge graph, related questions, news, and more as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The search query'),\n country_code: z.string().optional().describe('Two-letter country code, e.g. \"us\"'),\n language: z.string().optional().describe('Two-letter language code, e.g. \"en\"'),\n page: z.number().optional().describe('Result page number (1-based)'),\n search_type: z\n .enum(['classic', 'news', 'maps', 'images', 'lens'])\n .optional()\n .describe('The Google vertical to search'),\n light_request: z\n .boolean()\n .optional()\n .describe('Use the cheaper, lighter response (1 credit instead of 2)'),\n }),\n outputSchema,\n execute: async input => getClient().google.search(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioAmazonSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-amazon-search',\n description: 'Search Amazon for products via Scavio. Returns matching products as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The product search query'),\n domain: z.string().optional().describe('Amazon domain, e.g. \"amazon.com\"'),\n country: z.string().optional().describe('Two-letter country code'),\n sort_by: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().amazon.search(input),\n });\n}\n\nexport function createScavioAmazonProductTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-amazon-product',\n description: 'Fetch full Amazon product details by ASIN via Scavio.',\n inputSchema: z.object({\n asin: z.string().describe('Amazon Standard Identification Number (ASIN)'),\n domain: z.string().optional().describe('Amazon domain, e.g. \"amazon.com\"'),\n country: z.string().optional().describe('Two-letter country code'),\n }),\n outputSchema,\n execute: async input => getClient().amazon.product(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioWalmartSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-walmart-search',\n description: 'Search Walmart for products via Scavio. Returns matching products as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The product search query'),\n sort_by: z.string().optional().describe('Sort order for results'),\n min_price: z.number().optional().describe('Minimum price filter'),\n max_price: z.number().optional().describe('Maximum price filter'),\n }),\n outputSchema,\n execute: async input => getClient().walmart.search(input),\n });\n}\n\nexport function createScavioWalmartProductTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-walmart-product',\n description: 'Fetch full Walmart product details by product id via Scavio.',\n inputSchema: z.object({\n product_id: z.string().describe('Walmart product id'),\n }),\n outputSchema,\n execute: async input => getClient().walmart.product(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioYoutubeSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-youtube-search',\n description: 'Search YouTube for videos, channels, or playlists via Scavio.',\n inputSchema: z.object({\n query: z.string().describe('The video search query'),\n upload_date: z.string().optional().describe('Upload date filter, e.g. \"today\", \"week\", \"month\"'),\n type: z.string().optional().describe('Result type, e.g. \"video\", \"channel\", \"playlist\"'),\n sort_by: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().youtube.search(input),\n });\n}\n\nexport function createScavioYoutubeMetadataTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-youtube-metadata',\n description: 'Fetch metadata for a YouTube video by id via Scavio.',\n inputSchema: z.object({\n video_id: z.string().describe('YouTube video id'),\n }),\n outputSchema,\n execute: async input => getClient().youtube.metadata(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioRedditSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-reddit-search',\n description: 'Search Reddit posts, subreddits, or users via Scavio.',\n inputSchema: z.object({\n query: z.string().describe('The Reddit search query'),\n type: z.string().optional().describe('Search type, e.g. \"posts\", \"subreddits\", \"users\"'),\n sort: z.string().optional().describe('Sort order, e.g. \"relevance\", \"new\", \"top\"'),\n }),\n outputSchema,\n execute: async input => getClient().reddit.search(input),\n });\n}\n\nexport function createScavioRedditPostTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-reddit-post',\n description: 'Fetch a Reddit post and its comment thread by URL via Scavio.',\n inputSchema: z.object({\n url: z.string().describe('Full URL of the Reddit post'),\n }),\n outputSchema,\n execute: async input => getClient().reddit.post(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioTiktokSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-tiktok-search',\n description: 'Search TikTok videos by keyword via Scavio.',\n inputSchema: z.object({\n keyword: z.string().describe('Search keyword'),\n count: z.number().optional().describe('Number of videos to return'),\n sort_type: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().tiktok.searchVideos(input),\n });\n}\n\nexport function createScavioTiktokProfileTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-tiktok-profile',\n description: 'Fetch a TikTok user profile by username via Scavio.',\n inputSchema: z.object({\n username: z.string().optional().describe('TikTok username (without @)'),\n sec_user_id: z.string().optional().describe('TikTok secUid'),\n }),\n outputSchema,\n execute: async input => getClient().tiktok.profile(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioInstagramSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-instagram-search',\n description: 'Search Instagram users by keyword via Scavio.',\n inputSchema: z.object({\n keyword: z.string().describe('Search keyword'),\n }),\n outputSchema,\n execute: async input => getClient().instagram.searchUsers(input),\n });\n}\n\nexport function createScavioInstagramProfileTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-instagram-profile',\n description: 'Fetch an Instagram profile by username via Scavio.',\n inputSchema: z.object({\n username: z.string().optional().describe('Instagram username'),\n user_id: z.string().optional().describe('Instagram user id'),\n }),\n outputSchema,\n execute: async input => getClient().instagram.profile(input),\n });\n}\n","import type { ScavioClientOptions } from './client.js';\nimport { createScavioAmazonProductTool, createScavioAmazonSearchTool } from './amazon.js';\nimport { createScavioGoogleSearchTool } from './google.js';\nimport { createScavioInstagramProfileTool, createScavioInstagramSearchTool } from './instagram.js';\nimport { createScavioRedditPostTool, createScavioRedditSearchTool } from './reddit.js';\nimport { createScavioTiktokProfileTool, createScavioTiktokSearchTool } from './tiktok.js';\nimport { createScavioWalmartProductTool, createScavioWalmartSearchTool } from './walmart.js';\nimport { createScavioYoutubeMetadataTool, createScavioYoutubeSearchTool } from './youtube.js';\n\nexport function createScavioTools(config?: ScavioClientOptions) {\n return {\n scavioGoogleSearch: createScavioGoogleSearchTool(config),\n scavioAmazonSearch: createScavioAmazonSearchTool(config),\n scavioAmazonProduct: createScavioAmazonProductTool(config),\n scavioWalmartSearch: createScavioWalmartSearchTool(config),\n scavioWalmartProduct: createScavioWalmartProductTool(config),\n scavioYoutubeSearch: createScavioYoutubeSearchTool(config),\n scavioYoutubeMetadata: createScavioYoutubeMetadataTool(config),\n scavioRedditSearch: createScavioRedditSearchTool(config),\n scavioRedditPost: createScavioRedditPostTool(config),\n scavioTiktokSearch: createScavioTiktokSearchTool(config),\n scavioTiktokProfile: createScavioTiktokProfileTool(config),\n scavioInstagramSearch: createScavioInstagramSearchTool(config),\n scavioInstagramProfile: createScavioInstagramProfileTool(config),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuB;AAShB,SAAS,gBAAgB,QAA4C;AAC1E,QAAM,SAAS,QAAQ,UAAU,QAAQ,IAAI;AAC7C,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,4EAA4E;AAAA,EAC9F;AACA,SAAO,IAAI,qBAAO,EAAE,OAAO,CAAC;AAC9B;;;ACfA,mBAA2B;AAC3B,iBAAkB;AAKlB,IAAM,eAAe,aAAE,OAAO,aAAE,OAAO,GAAG,aAAE,QAAQ,CAAC;AAE9C,SAAS,6BAA6B,QAA8B;AACzE,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,yBAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aACE;AAAA,IACF,aAAa,aAAE,OAAO;AAAA,MACpB,OAAO,aAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA,MAC7C,cAAc,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oCAAoC;AAAA,MACjF,UAAU,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,qCAAqC;AAAA,MAC9E,MAAM,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,MACnE,aAAa,aACV,KAAK,CAAC,WAAW,QAAQ,QAAQ,UAAU,MAAM,CAAC,EAClD,SAAS,EACT,SAAS,+BAA+B;AAAA,MAC3C,eAAe,aACZ,QAAQ,EACR,SAAS,EACT,SAAS,2DAA2D;AAAA,IACzE,CAAC;AAAA,IACD;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,OAAO,KAAK;AAAA,EACzD,CAAC;AACH;;;ACjCA,IAAAA,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,6BAA6B,QAA8B;AACzE,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,OAAO,cAAE,OAAO,EAAE,SAAS,0BAA0B;AAAA,MACrD,QAAQ,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,MACzE,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,MACjE,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,IAClE,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,OAAO,KAAK;AAAA,EACzD,CAAC;AACH;AAEO,SAAS,8BAA8B,QAA8B;AAC1E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,MAAM,cAAE,OAAO,EAAE,SAAS,8CAA8C;AAAA,MACxE,QAAQ,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kCAAkC;AAAA,MACzE,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,yBAAyB;AAAA,IACnE,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,QAAQ,KAAK;AAAA,EAC1D,CAAC;AACH;;;ACzCA,IAAAC,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,8BAA8B,QAA8B;AAC1E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,OAAO,cAAE,OAAO,EAAE,SAAS,0BAA0B;AAAA,MACrD,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,MAChE,WAAW,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,MAChE,WAAW,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,sBAAsB;AAAA,IAClE,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,QAAQ,OAAO,KAAK;AAAA,EAC1D,CAAC;AACH;AAEO,SAAS,+BAA+B,QAA8B;AAC3E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,YAAY,cAAE,OAAO,EAAE,SAAS,oBAAoB;AAAA,IACtD,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,QAAQ,QAAQ,KAAK;AAAA,EAC3D,CAAC;AACH;;;ACvCA,IAAAC,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,8BAA8B,QAA8B;AAC1E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,OAAO,cAAE,OAAO,EAAE,SAAS,wBAAwB;AAAA,MACnD,aAAa,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mDAAmD;AAAA,MAC/F,MAAM,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kDAAkD;AAAA,MACvF,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,IAClE,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,QAAQ,OAAO,KAAK;AAAA,EAC1D,CAAC;AACH;AAEO,SAAS,gCAAgC,QAA8B;AAC5E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,UAAU,cAAE,OAAO,EAAE,SAAS,kBAAkB;AAAA,IAClD,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,QAAQ,SAAS,KAAK;AAAA,EAC5D,CAAC;AACH;;;ACvCA,IAAAC,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,6BAA6B,QAA8B;AACzE,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,OAAO,cAAE,OAAO,EAAE,SAAS,yBAAyB;AAAA,MACpD,MAAM,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,kDAAkD;AAAA,MACvF,MAAM,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4CAA4C;AAAA,IACnF,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,OAAO,KAAK;AAAA,EACzD,CAAC;AACH;AAEO,SAAS,2BAA2B,QAA8B;AACvE,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,KAAK,cAAE,OAAO,EAAE,SAAS,6BAA6B;AAAA,IACxD,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,KAAK,KAAK;AAAA,EACvD,CAAC;AACH;;;ACtCA,IAAAC,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,6BAA6B,QAA8B;AACzE,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,SAAS,cAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA,MAC7C,OAAO,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,4BAA4B;AAAA,MAClE,WAAW,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,wBAAwB;AAAA,IACpE,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,aAAa,KAAK;AAAA,EAC/D,CAAC;AACH;AAEO,SAAS,8BAA8B,QAA8B;AAC1E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,UAAU,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6BAA6B;AAAA,MACtE,aAAa,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,IAC7D,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,OAAO,QAAQ,KAAK;AAAA,EAC1D,CAAC;AACH;;;ACvCA,IAAAC,gBAA2B;AAC3B,IAAAC,cAAkB;AAKlB,IAAMC,gBAAe,cAAE,OAAO,cAAE,OAAO,GAAG,cAAE,QAAQ,CAAC;AAE9C,SAAS,gCAAgC,QAA8B;AAC5E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,SAAS,cAAE,OAAO,EAAE,SAAS,gBAAgB;AAAA,IAC/C,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,UAAU,YAAY,KAAK;AAAA,EACjE,CAAC;AACH;AAEO,SAAS,iCAAiC,QAA8B;AAC7E,MAAI,SAA8B;AAClC,QAAM,YAAY,MAAO,WAAW,gBAAgB,MAAM;AAE1D,aAAO,0BAAW;AAAA,IAChB,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,aAAa,cAAE,OAAO;AAAA,MACpB,UAAU,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,oBAAoB;AAAA,MAC7D,SAAS,cAAE,OAAO,EAAE,SAAS,EAAE,SAAS,mBAAmB;AAAA,IAC7D,CAAC;AAAA,IACD,cAAAA;AAAA,IACA,SAAS,OAAM,UAAS,UAAU,EAAE,UAAU,QAAQ,KAAK;AAAA,EAC7D,CAAC;AACH;;;AC5BO,SAAS,kBAAkB,QAA8B;AAC9D,SAAO;AAAA,IACL,oBAAoB,6BAA6B,MAAM;AAAA,IACvD,oBAAoB,6BAA6B,MAAM;AAAA,IACvD,qBAAqB,8BAA8B,MAAM;AAAA,IACzD,qBAAqB,8BAA8B,MAAM;AAAA,IACzD,sBAAsB,+BAA+B,MAAM;AAAA,IAC3D,qBAAqB,8BAA8B,MAAM;AAAA,IACzD,uBAAuB,gCAAgC,MAAM;AAAA,IAC7D,oBAAoB,6BAA6B,MAAM;AAAA,IACvD,kBAAkB,2BAA2B,MAAM;AAAA,IACnD,oBAAoB,6BAA6B,MAAM;AAAA,IACvD,qBAAqB,8BAA8B,MAAM;AAAA,IACzD,uBAAuB,gCAAgC,MAAM;AAAA,IAC7D,wBAAwB,iCAAiC,MAAM;AAAA,EACjE;AACF;","names":["import_tools","import_zod","outputSchema","import_tools","import_zod","outputSchema","import_tools","import_zod","outputSchema","import_tools","import_zod","outputSchema","import_tools","import_zod","outputSchema","import_tools","import_zod","outputSchema"]}
@@ -0,0 +1,143 @@
1
+ import { Scavio } from 'scavio';
2
+ import * as _mastra_core_tools from '@mastra/core/tools';
3
+
4
+ interface ScavioClientOptions {
5
+ /** Scavio API key. Falls back to the `SCAVIO_API_KEY` environment variable. */
6
+ apiKey?: string;
7
+ }
8
+ type ScavioClient = Scavio;
9
+ declare function getScavioClient(config?: ScavioClientOptions): ScavioClient;
10
+
11
+ declare function createScavioGoogleSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
12
+ query: string;
13
+ country_code?: string | undefined;
14
+ language?: string | undefined;
15
+ page?: number | undefined;
16
+ search_type?: "classic" | "news" | "maps" | "images" | "lens" | undefined;
17
+ light_request?: boolean | undefined;
18
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-google-search", unknown>;
19
+
20
+ declare function createScavioAmazonSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
21
+ query: string;
22
+ domain?: string | undefined;
23
+ country?: string | undefined;
24
+ sort_by?: string | undefined;
25
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-search", unknown>;
26
+ declare function createScavioAmazonProductTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
27
+ asin: string;
28
+ domain?: string | undefined;
29
+ country?: string | undefined;
30
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-product", unknown>;
31
+
32
+ declare function createScavioWalmartSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
33
+ query: string;
34
+ sort_by?: string | undefined;
35
+ min_price?: number | undefined;
36
+ max_price?: number | undefined;
37
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-search", unknown>;
38
+ declare function createScavioWalmartProductTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
39
+ product_id: string;
40
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-product", unknown>;
41
+
42
+ declare function createScavioYoutubeSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
43
+ query: string;
44
+ type?: string | undefined;
45
+ sort_by?: string | undefined;
46
+ upload_date?: string | undefined;
47
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-search", unknown>;
48
+ declare function createScavioYoutubeMetadataTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
49
+ video_id: string;
50
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-metadata", unknown>;
51
+
52
+ declare function createScavioRedditSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
53
+ query: string;
54
+ sort?: string | undefined;
55
+ type?: string | undefined;
56
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-search", unknown>;
57
+ declare function createScavioRedditPostTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
58
+ url: string;
59
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-post", unknown>;
60
+
61
+ declare function createScavioTiktokSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
62
+ keyword: string;
63
+ count?: number | undefined;
64
+ sort_type?: string | undefined;
65
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-search", unknown>;
66
+ declare function createScavioTiktokProfileTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
67
+ username?: string | undefined;
68
+ sec_user_id?: string | undefined;
69
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-profile", unknown>;
70
+
71
+ declare function createScavioInstagramSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
72
+ keyword: string;
73
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-search", unknown>;
74
+ declare function createScavioInstagramProfileTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
75
+ username?: string | undefined;
76
+ user_id?: string | undefined;
77
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-profile", unknown>;
78
+
79
+ declare function createScavioTools(config?: ScavioClientOptions): {
80
+ scavioGoogleSearch: _mastra_core_tools.Tool<{
81
+ query: string;
82
+ country_code?: string | undefined;
83
+ language?: string | undefined;
84
+ page?: number | undefined;
85
+ search_type?: "classic" | "news" | "maps" | "images" | "lens" | undefined;
86
+ light_request?: boolean | undefined;
87
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-google-search", unknown>;
88
+ scavioAmazonSearch: _mastra_core_tools.Tool<{
89
+ query: string;
90
+ domain?: string | undefined;
91
+ country?: string | undefined;
92
+ sort_by?: string | undefined;
93
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-search", unknown>;
94
+ scavioAmazonProduct: _mastra_core_tools.Tool<{
95
+ asin: string;
96
+ domain?: string | undefined;
97
+ country?: string | undefined;
98
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-product", unknown>;
99
+ scavioWalmartSearch: _mastra_core_tools.Tool<{
100
+ query: string;
101
+ sort_by?: string | undefined;
102
+ min_price?: number | undefined;
103
+ max_price?: number | undefined;
104
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-search", unknown>;
105
+ scavioWalmartProduct: _mastra_core_tools.Tool<{
106
+ product_id: string;
107
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-product", unknown>;
108
+ scavioYoutubeSearch: _mastra_core_tools.Tool<{
109
+ query: string;
110
+ type?: string | undefined;
111
+ sort_by?: string | undefined;
112
+ upload_date?: string | undefined;
113
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-search", unknown>;
114
+ scavioYoutubeMetadata: _mastra_core_tools.Tool<{
115
+ video_id: string;
116
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-metadata", unknown>;
117
+ scavioRedditSearch: _mastra_core_tools.Tool<{
118
+ query: string;
119
+ sort?: string | undefined;
120
+ type?: string | undefined;
121
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-search", unknown>;
122
+ scavioRedditPost: _mastra_core_tools.Tool<{
123
+ url: string;
124
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-post", unknown>;
125
+ scavioTiktokSearch: _mastra_core_tools.Tool<{
126
+ keyword: string;
127
+ count?: number | undefined;
128
+ sort_type?: string | undefined;
129
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-search", unknown>;
130
+ scavioTiktokProfile: _mastra_core_tools.Tool<{
131
+ username?: string | undefined;
132
+ sec_user_id?: string | undefined;
133
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-profile", unknown>;
134
+ scavioInstagramSearch: _mastra_core_tools.Tool<{
135
+ keyword: string;
136
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-search", unknown>;
137
+ scavioInstagramProfile: _mastra_core_tools.Tool<{
138
+ username?: string | undefined;
139
+ user_id?: string | undefined;
140
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-profile", unknown>;
141
+ };
142
+
143
+ export { type ScavioClient, type ScavioClientOptions, createScavioAmazonProductTool, createScavioAmazonSearchTool, createScavioGoogleSearchTool, createScavioInstagramProfileTool, createScavioInstagramSearchTool, createScavioRedditPostTool, createScavioRedditSearchTool, createScavioTiktokProfileTool, createScavioTiktokSearchTool, createScavioTools, createScavioWalmartProductTool, createScavioWalmartSearchTool, createScavioYoutubeMetadataTool, createScavioYoutubeSearchTool, getScavioClient };
@@ -0,0 +1,143 @@
1
+ import { Scavio } from 'scavio';
2
+ import * as _mastra_core_tools from '@mastra/core/tools';
3
+
4
+ interface ScavioClientOptions {
5
+ /** Scavio API key. Falls back to the `SCAVIO_API_KEY` environment variable. */
6
+ apiKey?: string;
7
+ }
8
+ type ScavioClient = Scavio;
9
+ declare function getScavioClient(config?: ScavioClientOptions): ScavioClient;
10
+
11
+ declare function createScavioGoogleSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
12
+ query: string;
13
+ country_code?: string | undefined;
14
+ language?: string | undefined;
15
+ page?: number | undefined;
16
+ search_type?: "classic" | "news" | "maps" | "images" | "lens" | undefined;
17
+ light_request?: boolean | undefined;
18
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-google-search", unknown>;
19
+
20
+ declare function createScavioAmazonSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
21
+ query: string;
22
+ domain?: string | undefined;
23
+ country?: string | undefined;
24
+ sort_by?: string | undefined;
25
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-search", unknown>;
26
+ declare function createScavioAmazonProductTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
27
+ asin: string;
28
+ domain?: string | undefined;
29
+ country?: string | undefined;
30
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-product", unknown>;
31
+
32
+ declare function createScavioWalmartSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
33
+ query: string;
34
+ sort_by?: string | undefined;
35
+ min_price?: number | undefined;
36
+ max_price?: number | undefined;
37
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-search", unknown>;
38
+ declare function createScavioWalmartProductTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
39
+ product_id: string;
40
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-product", unknown>;
41
+
42
+ declare function createScavioYoutubeSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
43
+ query: string;
44
+ type?: string | undefined;
45
+ sort_by?: string | undefined;
46
+ upload_date?: string | undefined;
47
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-search", unknown>;
48
+ declare function createScavioYoutubeMetadataTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
49
+ video_id: string;
50
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-metadata", unknown>;
51
+
52
+ declare function createScavioRedditSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
53
+ query: string;
54
+ sort?: string | undefined;
55
+ type?: string | undefined;
56
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-search", unknown>;
57
+ declare function createScavioRedditPostTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
58
+ url: string;
59
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-post", unknown>;
60
+
61
+ declare function createScavioTiktokSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
62
+ keyword: string;
63
+ count?: number | undefined;
64
+ sort_type?: string | undefined;
65
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-search", unknown>;
66
+ declare function createScavioTiktokProfileTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
67
+ username?: string | undefined;
68
+ sec_user_id?: string | undefined;
69
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-profile", unknown>;
70
+
71
+ declare function createScavioInstagramSearchTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
72
+ keyword: string;
73
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-search", unknown>;
74
+ declare function createScavioInstagramProfileTool(config?: ScavioClientOptions): _mastra_core_tools.Tool<{
75
+ username?: string | undefined;
76
+ user_id?: string | undefined;
77
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-profile", unknown>;
78
+
79
+ declare function createScavioTools(config?: ScavioClientOptions): {
80
+ scavioGoogleSearch: _mastra_core_tools.Tool<{
81
+ query: string;
82
+ country_code?: string | undefined;
83
+ language?: string | undefined;
84
+ page?: number | undefined;
85
+ search_type?: "classic" | "news" | "maps" | "images" | "lens" | undefined;
86
+ light_request?: boolean | undefined;
87
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-google-search", unknown>;
88
+ scavioAmazonSearch: _mastra_core_tools.Tool<{
89
+ query: string;
90
+ domain?: string | undefined;
91
+ country?: string | undefined;
92
+ sort_by?: string | undefined;
93
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-search", unknown>;
94
+ scavioAmazonProduct: _mastra_core_tools.Tool<{
95
+ asin: string;
96
+ domain?: string | undefined;
97
+ country?: string | undefined;
98
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-amazon-product", unknown>;
99
+ scavioWalmartSearch: _mastra_core_tools.Tool<{
100
+ query: string;
101
+ sort_by?: string | undefined;
102
+ min_price?: number | undefined;
103
+ max_price?: number | undefined;
104
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-search", unknown>;
105
+ scavioWalmartProduct: _mastra_core_tools.Tool<{
106
+ product_id: string;
107
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-walmart-product", unknown>;
108
+ scavioYoutubeSearch: _mastra_core_tools.Tool<{
109
+ query: string;
110
+ type?: string | undefined;
111
+ sort_by?: string | undefined;
112
+ upload_date?: string | undefined;
113
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-search", unknown>;
114
+ scavioYoutubeMetadata: _mastra_core_tools.Tool<{
115
+ video_id: string;
116
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-youtube-metadata", unknown>;
117
+ scavioRedditSearch: _mastra_core_tools.Tool<{
118
+ query: string;
119
+ sort?: string | undefined;
120
+ type?: string | undefined;
121
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-search", unknown>;
122
+ scavioRedditPost: _mastra_core_tools.Tool<{
123
+ url: string;
124
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-reddit-post", unknown>;
125
+ scavioTiktokSearch: _mastra_core_tools.Tool<{
126
+ keyword: string;
127
+ count?: number | undefined;
128
+ sort_type?: string | undefined;
129
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-search", unknown>;
130
+ scavioTiktokProfile: _mastra_core_tools.Tool<{
131
+ username?: string | undefined;
132
+ sec_user_id?: string | undefined;
133
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-tiktok-profile", unknown>;
134
+ scavioInstagramSearch: _mastra_core_tools.Tool<{
135
+ keyword: string;
136
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-search", unknown>;
137
+ scavioInstagramProfile: _mastra_core_tools.Tool<{
138
+ username?: string | undefined;
139
+ user_id?: string | undefined;
140
+ }, Record<string, unknown>, unknown, unknown, _mastra_core_tools.ToolExecutionContext<unknown, unknown, unknown>, "scavio-instagram-profile", unknown>;
141
+ };
142
+
143
+ export { type ScavioClient, type ScavioClientOptions, createScavioAmazonProductTool, createScavioAmazonSearchTool, createScavioGoogleSearchTool, createScavioInstagramProfileTool, createScavioInstagramSearchTool, createScavioRedditPostTool, createScavioRedditSearchTool, createScavioTiktokProfileTool, createScavioTiktokSearchTool, createScavioTools, createScavioWalmartProductTool, createScavioWalmartSearchTool, createScavioYoutubeMetadataTool, createScavioYoutubeSearchTool, getScavioClient };
package/dist/index.js ADDED
@@ -0,0 +1,272 @@
1
+ // src/client.ts
2
+ import { Scavio } from "scavio";
3
+ function getScavioClient(config) {
4
+ const apiKey = config?.apiKey ?? process.env.SCAVIO_API_KEY;
5
+ if (!apiKey) {
6
+ throw new Error("Scavio API key is required. Pass { apiKey } or set SCAVIO_API_KEY env var.");
7
+ }
8
+ return new Scavio({ apiKey });
9
+ }
10
+
11
+ // src/google.ts
12
+ import { createTool } from "@mastra/core/tools";
13
+ import { z } from "zod";
14
+ var outputSchema = z.record(z.string(), z.unknown());
15
+ function createScavioGoogleSearchTool(config) {
16
+ let client = null;
17
+ const getClient = () => client ??= getScavioClient(config);
18
+ return createTool({
19
+ id: "scavio-google-search",
20
+ description: "Search Google in real time via Scavio. Returns organic results, knowledge graph, related questions, news, and more as structured JSON.",
21
+ inputSchema: z.object({
22
+ query: z.string().describe("The search query"),
23
+ country_code: z.string().optional().describe('Two-letter country code, e.g. "us"'),
24
+ language: z.string().optional().describe('Two-letter language code, e.g. "en"'),
25
+ page: z.number().optional().describe("Result page number (1-based)"),
26
+ search_type: z.enum(["classic", "news", "maps", "images", "lens"]).optional().describe("The Google vertical to search"),
27
+ light_request: z.boolean().optional().describe("Use the cheaper, lighter response (1 credit instead of 2)")
28
+ }),
29
+ outputSchema,
30
+ execute: async (input) => getClient().google.search(input)
31
+ });
32
+ }
33
+
34
+ // src/amazon.ts
35
+ import { createTool as createTool2 } from "@mastra/core/tools";
36
+ import { z as z2 } from "zod";
37
+ var outputSchema2 = z2.record(z2.string(), z2.unknown());
38
+ function createScavioAmazonSearchTool(config) {
39
+ let client = null;
40
+ const getClient = () => client ??= getScavioClient(config);
41
+ return createTool2({
42
+ id: "scavio-amazon-search",
43
+ description: "Search Amazon for products via Scavio. Returns matching products as structured JSON.",
44
+ inputSchema: z2.object({
45
+ query: z2.string().describe("The product search query"),
46
+ domain: z2.string().optional().describe('Amazon domain, e.g. "amazon.com"'),
47
+ country: z2.string().optional().describe("Two-letter country code"),
48
+ sort_by: z2.string().optional().describe("Sort order for results")
49
+ }),
50
+ outputSchema: outputSchema2,
51
+ execute: async (input) => getClient().amazon.search(input)
52
+ });
53
+ }
54
+ function createScavioAmazonProductTool(config) {
55
+ let client = null;
56
+ const getClient = () => client ??= getScavioClient(config);
57
+ return createTool2({
58
+ id: "scavio-amazon-product",
59
+ description: "Fetch full Amazon product details by ASIN via Scavio.",
60
+ inputSchema: z2.object({
61
+ asin: z2.string().describe("Amazon Standard Identification Number (ASIN)"),
62
+ domain: z2.string().optional().describe('Amazon domain, e.g. "amazon.com"'),
63
+ country: z2.string().optional().describe("Two-letter country code")
64
+ }),
65
+ outputSchema: outputSchema2,
66
+ execute: async (input) => getClient().amazon.product(input)
67
+ });
68
+ }
69
+
70
+ // src/walmart.ts
71
+ import { createTool as createTool3 } from "@mastra/core/tools";
72
+ import { z as z3 } from "zod";
73
+ var outputSchema3 = z3.record(z3.string(), z3.unknown());
74
+ function createScavioWalmartSearchTool(config) {
75
+ let client = null;
76
+ const getClient = () => client ??= getScavioClient(config);
77
+ return createTool3({
78
+ id: "scavio-walmart-search",
79
+ description: "Search Walmart for products via Scavio. Returns matching products as structured JSON.",
80
+ inputSchema: z3.object({
81
+ query: z3.string().describe("The product search query"),
82
+ sort_by: z3.string().optional().describe("Sort order for results"),
83
+ min_price: z3.number().optional().describe("Minimum price filter"),
84
+ max_price: z3.number().optional().describe("Maximum price filter")
85
+ }),
86
+ outputSchema: outputSchema3,
87
+ execute: async (input) => getClient().walmart.search(input)
88
+ });
89
+ }
90
+ function createScavioWalmartProductTool(config) {
91
+ let client = null;
92
+ const getClient = () => client ??= getScavioClient(config);
93
+ return createTool3({
94
+ id: "scavio-walmart-product",
95
+ description: "Fetch full Walmart product details by product id via Scavio.",
96
+ inputSchema: z3.object({
97
+ product_id: z3.string().describe("Walmart product id")
98
+ }),
99
+ outputSchema: outputSchema3,
100
+ execute: async (input) => getClient().walmart.product(input)
101
+ });
102
+ }
103
+
104
+ // src/youtube.ts
105
+ import { createTool as createTool4 } from "@mastra/core/tools";
106
+ import { z as z4 } from "zod";
107
+ var outputSchema4 = z4.record(z4.string(), z4.unknown());
108
+ function createScavioYoutubeSearchTool(config) {
109
+ let client = null;
110
+ const getClient = () => client ??= getScavioClient(config);
111
+ return createTool4({
112
+ id: "scavio-youtube-search",
113
+ description: "Search YouTube for videos, channels, or playlists via Scavio.",
114
+ inputSchema: z4.object({
115
+ query: z4.string().describe("The video search query"),
116
+ upload_date: z4.string().optional().describe('Upload date filter, e.g. "today", "week", "month"'),
117
+ type: z4.string().optional().describe('Result type, e.g. "video", "channel", "playlist"'),
118
+ sort_by: z4.string().optional().describe("Sort order for results")
119
+ }),
120
+ outputSchema: outputSchema4,
121
+ execute: async (input) => getClient().youtube.search(input)
122
+ });
123
+ }
124
+ function createScavioYoutubeMetadataTool(config) {
125
+ let client = null;
126
+ const getClient = () => client ??= getScavioClient(config);
127
+ return createTool4({
128
+ id: "scavio-youtube-metadata",
129
+ description: "Fetch metadata for a YouTube video by id via Scavio.",
130
+ inputSchema: z4.object({
131
+ video_id: z4.string().describe("YouTube video id")
132
+ }),
133
+ outputSchema: outputSchema4,
134
+ execute: async (input) => getClient().youtube.metadata(input)
135
+ });
136
+ }
137
+
138
+ // src/reddit.ts
139
+ import { createTool as createTool5 } from "@mastra/core/tools";
140
+ import { z as z5 } from "zod";
141
+ var outputSchema5 = z5.record(z5.string(), z5.unknown());
142
+ function createScavioRedditSearchTool(config) {
143
+ let client = null;
144
+ const getClient = () => client ??= getScavioClient(config);
145
+ return createTool5({
146
+ id: "scavio-reddit-search",
147
+ description: "Search Reddit posts, subreddits, or users via Scavio.",
148
+ inputSchema: z5.object({
149
+ query: z5.string().describe("The Reddit search query"),
150
+ type: z5.string().optional().describe('Search type, e.g. "posts", "subreddits", "users"'),
151
+ sort: z5.string().optional().describe('Sort order, e.g. "relevance", "new", "top"')
152
+ }),
153
+ outputSchema: outputSchema5,
154
+ execute: async (input) => getClient().reddit.search(input)
155
+ });
156
+ }
157
+ function createScavioRedditPostTool(config) {
158
+ let client = null;
159
+ const getClient = () => client ??= getScavioClient(config);
160
+ return createTool5({
161
+ id: "scavio-reddit-post",
162
+ description: "Fetch a Reddit post and its comment thread by URL via Scavio.",
163
+ inputSchema: z5.object({
164
+ url: z5.string().describe("Full URL of the Reddit post")
165
+ }),
166
+ outputSchema: outputSchema5,
167
+ execute: async (input) => getClient().reddit.post(input)
168
+ });
169
+ }
170
+
171
+ // src/tiktok.ts
172
+ import { createTool as createTool6 } from "@mastra/core/tools";
173
+ import { z as z6 } from "zod";
174
+ var outputSchema6 = z6.record(z6.string(), z6.unknown());
175
+ function createScavioTiktokSearchTool(config) {
176
+ let client = null;
177
+ const getClient = () => client ??= getScavioClient(config);
178
+ return createTool6({
179
+ id: "scavio-tiktok-search",
180
+ description: "Search TikTok videos by keyword via Scavio.",
181
+ inputSchema: z6.object({
182
+ keyword: z6.string().describe("Search keyword"),
183
+ count: z6.number().optional().describe("Number of videos to return"),
184
+ sort_type: z6.string().optional().describe("Sort order for results")
185
+ }),
186
+ outputSchema: outputSchema6,
187
+ execute: async (input) => getClient().tiktok.searchVideos(input)
188
+ });
189
+ }
190
+ function createScavioTiktokProfileTool(config) {
191
+ let client = null;
192
+ const getClient = () => client ??= getScavioClient(config);
193
+ return createTool6({
194
+ id: "scavio-tiktok-profile",
195
+ description: "Fetch a TikTok user profile by username via Scavio.",
196
+ inputSchema: z6.object({
197
+ username: z6.string().optional().describe("TikTok username (without @)"),
198
+ sec_user_id: z6.string().optional().describe("TikTok secUid")
199
+ }),
200
+ outputSchema: outputSchema6,
201
+ execute: async (input) => getClient().tiktok.profile(input)
202
+ });
203
+ }
204
+
205
+ // src/instagram.ts
206
+ import { createTool as createTool7 } from "@mastra/core/tools";
207
+ import { z as z7 } from "zod";
208
+ var outputSchema7 = z7.record(z7.string(), z7.unknown());
209
+ function createScavioInstagramSearchTool(config) {
210
+ let client = null;
211
+ const getClient = () => client ??= getScavioClient(config);
212
+ return createTool7({
213
+ id: "scavio-instagram-search",
214
+ description: "Search Instagram users by keyword via Scavio.",
215
+ inputSchema: z7.object({
216
+ keyword: z7.string().describe("Search keyword")
217
+ }),
218
+ outputSchema: outputSchema7,
219
+ execute: async (input) => getClient().instagram.searchUsers(input)
220
+ });
221
+ }
222
+ function createScavioInstagramProfileTool(config) {
223
+ let client = null;
224
+ const getClient = () => client ??= getScavioClient(config);
225
+ return createTool7({
226
+ id: "scavio-instagram-profile",
227
+ description: "Fetch an Instagram profile by username via Scavio.",
228
+ inputSchema: z7.object({
229
+ username: z7.string().optional().describe("Instagram username"),
230
+ user_id: z7.string().optional().describe("Instagram user id")
231
+ }),
232
+ outputSchema: outputSchema7,
233
+ execute: async (input) => getClient().instagram.profile(input)
234
+ });
235
+ }
236
+
237
+ // src/tools.ts
238
+ function createScavioTools(config) {
239
+ return {
240
+ scavioGoogleSearch: createScavioGoogleSearchTool(config),
241
+ scavioAmazonSearch: createScavioAmazonSearchTool(config),
242
+ scavioAmazonProduct: createScavioAmazonProductTool(config),
243
+ scavioWalmartSearch: createScavioWalmartSearchTool(config),
244
+ scavioWalmartProduct: createScavioWalmartProductTool(config),
245
+ scavioYoutubeSearch: createScavioYoutubeSearchTool(config),
246
+ scavioYoutubeMetadata: createScavioYoutubeMetadataTool(config),
247
+ scavioRedditSearch: createScavioRedditSearchTool(config),
248
+ scavioRedditPost: createScavioRedditPostTool(config),
249
+ scavioTiktokSearch: createScavioTiktokSearchTool(config),
250
+ scavioTiktokProfile: createScavioTiktokProfileTool(config),
251
+ scavioInstagramSearch: createScavioInstagramSearchTool(config),
252
+ scavioInstagramProfile: createScavioInstagramProfileTool(config)
253
+ };
254
+ }
255
+ export {
256
+ createScavioAmazonProductTool,
257
+ createScavioAmazonSearchTool,
258
+ createScavioGoogleSearchTool,
259
+ createScavioInstagramProfileTool,
260
+ createScavioInstagramSearchTool,
261
+ createScavioRedditPostTool,
262
+ createScavioRedditSearchTool,
263
+ createScavioTiktokProfileTool,
264
+ createScavioTiktokSearchTool,
265
+ createScavioTools,
266
+ createScavioWalmartProductTool,
267
+ createScavioWalmartSearchTool,
268
+ createScavioYoutubeMetadataTool,
269
+ createScavioYoutubeSearchTool,
270
+ getScavioClient
271
+ };
272
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client.ts","../src/google.ts","../src/amazon.ts","../src/walmart.ts","../src/youtube.ts","../src/reddit.ts","../src/tiktok.ts","../src/instagram.ts","../src/tools.ts"],"sourcesContent":["import { Scavio } from 'scavio';\n\nexport interface ScavioClientOptions {\n /** Scavio API key. Falls back to the `SCAVIO_API_KEY` environment variable. */\n apiKey?: string;\n}\n\nexport type ScavioClient = Scavio;\n\nexport function getScavioClient(config?: ScavioClientOptions): ScavioClient {\n const apiKey = config?.apiKey ?? process.env.SCAVIO_API_KEY;\n if (!apiKey) {\n throw new Error('Scavio API key is required. Pass { apiKey } or set SCAVIO_API_KEY env var.');\n }\n return new Scavio({ apiKey });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioGoogleSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-google-search',\n description:\n 'Search Google in real time via Scavio. Returns organic results, knowledge graph, related questions, news, and more as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The search query'),\n country_code: z.string().optional().describe('Two-letter country code, e.g. \"us\"'),\n language: z.string().optional().describe('Two-letter language code, e.g. \"en\"'),\n page: z.number().optional().describe('Result page number (1-based)'),\n search_type: z\n .enum(['classic', 'news', 'maps', 'images', 'lens'])\n .optional()\n .describe('The Google vertical to search'),\n light_request: z\n .boolean()\n .optional()\n .describe('Use the cheaper, lighter response (1 credit instead of 2)'),\n }),\n outputSchema,\n execute: async input => getClient().google.search(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioAmazonSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-amazon-search',\n description: 'Search Amazon for products via Scavio. Returns matching products as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The product search query'),\n domain: z.string().optional().describe('Amazon domain, e.g. \"amazon.com\"'),\n country: z.string().optional().describe('Two-letter country code'),\n sort_by: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().amazon.search(input),\n });\n}\n\nexport function createScavioAmazonProductTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-amazon-product',\n description: 'Fetch full Amazon product details by ASIN via Scavio.',\n inputSchema: z.object({\n asin: z.string().describe('Amazon Standard Identification Number (ASIN)'),\n domain: z.string().optional().describe('Amazon domain, e.g. \"amazon.com\"'),\n country: z.string().optional().describe('Two-letter country code'),\n }),\n outputSchema,\n execute: async input => getClient().amazon.product(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioWalmartSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-walmart-search',\n description: 'Search Walmart for products via Scavio. Returns matching products as structured JSON.',\n inputSchema: z.object({\n query: z.string().describe('The product search query'),\n sort_by: z.string().optional().describe('Sort order for results'),\n min_price: z.number().optional().describe('Minimum price filter'),\n max_price: z.number().optional().describe('Maximum price filter'),\n }),\n outputSchema,\n execute: async input => getClient().walmart.search(input),\n });\n}\n\nexport function createScavioWalmartProductTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-walmart-product',\n description: 'Fetch full Walmart product details by product id via Scavio.',\n inputSchema: z.object({\n product_id: z.string().describe('Walmart product id'),\n }),\n outputSchema,\n execute: async input => getClient().walmart.product(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioYoutubeSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-youtube-search',\n description: 'Search YouTube for videos, channels, or playlists via Scavio.',\n inputSchema: z.object({\n query: z.string().describe('The video search query'),\n upload_date: z.string().optional().describe('Upload date filter, e.g. \"today\", \"week\", \"month\"'),\n type: z.string().optional().describe('Result type, e.g. \"video\", \"channel\", \"playlist\"'),\n sort_by: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().youtube.search(input),\n });\n}\n\nexport function createScavioYoutubeMetadataTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-youtube-metadata',\n description: 'Fetch metadata for a YouTube video by id via Scavio.',\n inputSchema: z.object({\n video_id: z.string().describe('YouTube video id'),\n }),\n outputSchema,\n execute: async input => getClient().youtube.metadata(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioRedditSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-reddit-search',\n description: 'Search Reddit posts, subreddits, or users via Scavio.',\n inputSchema: z.object({\n query: z.string().describe('The Reddit search query'),\n type: z.string().optional().describe('Search type, e.g. \"posts\", \"subreddits\", \"users\"'),\n sort: z.string().optional().describe('Sort order, e.g. \"relevance\", \"new\", \"top\"'),\n }),\n outputSchema,\n execute: async input => getClient().reddit.search(input),\n });\n}\n\nexport function createScavioRedditPostTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-reddit-post',\n description: 'Fetch a Reddit post and its comment thread by URL via Scavio.',\n inputSchema: z.object({\n url: z.string().describe('Full URL of the Reddit post'),\n }),\n outputSchema,\n execute: async input => getClient().reddit.post(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioTiktokSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-tiktok-search',\n description: 'Search TikTok videos by keyword via Scavio.',\n inputSchema: z.object({\n keyword: z.string().describe('Search keyword'),\n count: z.number().optional().describe('Number of videos to return'),\n sort_type: z.string().optional().describe('Sort order for results'),\n }),\n outputSchema,\n execute: async input => getClient().tiktok.searchVideos(input),\n });\n}\n\nexport function createScavioTiktokProfileTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-tiktok-profile',\n description: 'Fetch a TikTok user profile by username via Scavio.',\n inputSchema: z.object({\n username: z.string().optional().describe('TikTok username (without @)'),\n sec_user_id: z.string().optional().describe('TikTok secUid'),\n }),\n outputSchema,\n execute: async input => getClient().tiktok.profile(input),\n });\n}\n","import { createTool } from '@mastra/core/tools';\nimport { z } from 'zod';\n\nimport { getScavioClient } from './client.js';\nimport type { ScavioClient, ScavioClientOptions } from './client.js';\n\nconst outputSchema = z.record(z.string(), z.unknown());\n\nexport function createScavioInstagramSearchTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-instagram-search',\n description: 'Search Instagram users by keyword via Scavio.',\n inputSchema: z.object({\n keyword: z.string().describe('Search keyword'),\n }),\n outputSchema,\n execute: async input => getClient().instagram.searchUsers(input),\n });\n}\n\nexport function createScavioInstagramProfileTool(config?: ScavioClientOptions) {\n let client: ScavioClient | null = null;\n const getClient = () => (client ??= getScavioClient(config));\n\n return createTool({\n id: 'scavio-instagram-profile',\n description: 'Fetch an Instagram profile by username via Scavio.',\n inputSchema: z.object({\n username: z.string().optional().describe('Instagram username'),\n user_id: z.string().optional().describe('Instagram user id'),\n }),\n outputSchema,\n execute: async input => getClient().instagram.profile(input),\n });\n}\n","import type { ScavioClientOptions } from './client.js';\nimport { createScavioAmazonProductTool, createScavioAmazonSearchTool } from './amazon.js';\nimport { createScavioGoogleSearchTool } from './google.js';\nimport { createScavioInstagramProfileTool, createScavioInstagramSearchTool } from './instagram.js';\nimport { createScavioRedditPostTool, createScavioRedditSearchTool } from './reddit.js';\nimport { createScavioTiktokProfileTool, createScavioTiktokSearchTool } from './tiktok.js';\nimport { createScavioWalmartProductTool, createScavioWalmartSearchTool } from './walmart.js';\nimport { createScavioYoutubeMetadataTool, createScavioYoutubeSearchTool } from './youtube.js';\n\nexport function createScavioTools(config?: ScavioClientOptions) {\n return {\n scavioGoogleSearch: createScavioGoogleSearchTool(config),\n scavioAmazonSearch: createScavioAmazonSearchTool(config),\n scavioAmazonProduct: createScavioAmazonProductTool(config),\n scavioWalmartSearch: createScavioWalmartSearchTool(config),\n scavioWalmartProduct: createScavioWalmartProductTool(config),\n scavioYoutubeSearch: createScavioYoutubeSearchTool(config),\n scavioYoutubeMetadata: createScavioYoutubeMetadataTool(config),\n scavioRedditSearch: createScavioRedditSearchTool(config),\n scavioRedditPost: createScavioRedditPostTool(config),\n scavioTiktokSearch: createScavioTiktokSearchTool(config),\n scavioTiktokProfile: createScavioTiktokProfileTool(config),\n scavioInstagramSearch: createScavioInstagramSearchTool(config),\n scavioInstagramProfile: createScavioInstagramProfileTool(config),\n };\n}\n"],"mappings":"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","names":["createTool","z","outputSchema","z","createTool","createTool","z","outputSchema","z","createTool","createTool","z","outputSchema","z","createTool","createTool","z","outputSchema","z","createTool","createTool","z","outputSchema","z","createTool","createTool","z","outputSchema","z","createTool"]}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "mastra-scavio",
3
+ "version": "0.1.0",
4
+ "description": "Scavio real-time search tools (Google, YouTube, Amazon, Walmart, Reddit, TikTok, Instagram) for Mastra agents",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": {
12
+ "types": "./dist/index.d.ts",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "require": {
16
+ "types": "./dist/index.d.cts",
17
+ "default": "./dist/index.cjs"
18
+ }
19
+ }
20
+ },
21
+ "files": ["dist", "README.md"],
22
+ "scripts": {
23
+ "build": "tsup",
24
+ "dev": "tsup --watch",
25
+ "typecheck": "tsc --noEmit",
26
+ "test": "vitest run",
27
+ "prepublishOnly": "npm run build"
28
+ },
29
+ "keywords": ["mastra", "scavio", "web-search", "serp", "tools", "ai-agent"],
30
+ "license": "MIT",
31
+ "author": "Scavio <support@scavio.dev>",
32
+ "homepage": "https://scavio.dev",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/scavio-ai/mastra-scavio.git"
36
+ },
37
+ "engines": {
38
+ "node": ">=20.9.0"
39
+ },
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "dependencies": {
44
+ "scavio": "^0.2.1"
45
+ },
46
+ "peerDependencies": {
47
+ "@mastra/core": ">=1.0.0-0 <2.0.0-0",
48
+ "zod": ">=3.0.0 || >=4.0.0"
49
+ },
50
+ "devDependencies": {
51
+ "@mastra/core": "^1.0.0",
52
+ "@types/node": "^20.0.0",
53
+ "tsup": "^8.5.1",
54
+ "typescript": "^5.7.0",
55
+ "vitest": "^2.1.0",
56
+ "zod": "^3.25.0"
57
+ }
58
+ }