@decodo/mcp-server 1.3.1 → 1.4.1
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 +10 -4
- package/build/clients/scraper-api-client.js +63 -15
- package/build/clients/scraper-api-client.js.map +1 -1
- package/build/server/app.js +2 -1
- package/build/server/app.js.map +1 -1
- package/build/server/hidden-tools.js +28 -0
- package/build/server/hidden-tools.js.map +1 -0
- package/build/server/sapi-base-server.js +20 -11
- package/build/server/sapi-base-server.js.map +1 -1
- package/build/server/sapi-http-server.js +8 -2
- package/build/server/sapi-http-server.js.map +1 -1
- package/build/server.js +6 -1
- package/build/server.js.map +1 -1
- package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js +3 -1
- package/build/tools/amazon-bestsellers/amazon-bestsellers-tool.js.map +1 -1
- package/build/tools/amazon-pricing/amazon-pricing-tool.js +3 -1
- package/build/tools/amazon-pricing/amazon-pricing-tool.js.map +1 -1
- package/build/tools/amazon-product/amazon-product-tool.js +3 -1
- package/build/tools/amazon-product/amazon-product-tool.js.map +1 -1
- package/build/tools/amazon-search/amazon-search-tool.js +3 -1
- package/build/tools/amazon-search/amazon-search-tool.js.map +1 -1
- package/build/tools/amazon-sellers/amazon-sellers-tool.js +3 -1
- package/build/tools/amazon-sellers/amazon-sellers-tool.js.map +1 -1
- package/build/tools/bing-search/bing-search-tool.js +3 -1
- package/build/tools/bing-search/bing-search-tool.js.map +1 -1
- package/build/tools/chatgpt/chatgpt-tool.js +4 -1
- package/build/tools/chatgpt/chatgpt-tool.js.map +1 -1
- package/build/tools/crawl-cancel/crawl-cancel-tool.js +41 -0
- package/build/tools/crawl-cancel/crawl-cancel-tool.js.map +1 -0
- package/build/tools/crawl-cancel/index.js +18 -0
- package/build/tools/crawl-cancel/index.js.map +1 -0
- package/build/tools/crawl-results/crawl-results-tool.js +172 -0
- package/build/tools/crawl-results/crawl-results-tool.js.map +1 -0
- package/build/tools/crawl-results/index.js +18 -0
- package/build/tools/crawl-results/index.js.map +1 -0
- package/build/tools/crawl-start/crawl-start-tool.js +74 -0
- package/build/tools/crawl-start/crawl-start-tool.js.map +1 -0
- package/build/tools/crawl-start/index.js +18 -0
- package/build/tools/crawl-start/index.js.map +1 -0
- package/build/tools/crawl-status/crawl-status-tool.js +40 -0
- package/build/tools/crawl-status/crawl-status-tool.js.map +1 -0
- package/build/tools/crawl-status/index.js +18 -0
- package/build/tools/crawl-status/index.js.map +1 -0
- package/build/tools/google-ads/google-ads-tool.js +3 -1
- package/build/tools/google-ads/google-ads-tool.js.map +1 -1
- package/build/tools/google-ai-mode/google-ai-mode-tool.js +3 -1
- package/build/tools/google-ai-mode/google-ai-mode-tool.js.map +1 -1
- package/build/tools/google-lens/google-lens-tool.js +3 -1
- package/build/tools/google-lens/google-lens-tool.js.map +1 -1
- package/build/tools/google-search/google-search-tool.js +3 -1
- package/build/tools/google-search/google-search-tool.js.map +1 -1
- package/build/tools/google-travel-hotels/google-travel-hotels-tool.js +3 -1
- package/build/tools/google-travel-hotels/google-travel-hotels-tool.js.map +1 -1
- package/build/tools/index.js +6 -0
- package/build/tools/index.js.map +1 -1
- package/build/tools/map/index.js +18 -0
- package/build/tools/map/index.js.map +1 -0
- package/build/tools/map/map-tool.js +66 -0
- package/build/tools/map/map-tool.js.map +1 -0
- package/build/tools/perplexity/perplexity-tool.js +4 -1
- package/build/tools/perplexity/perplexity-tool.js.map +1 -1
- package/build/tools/reddit-post/reddit-post-tool.js +3 -1
- package/build/tools/reddit-post/reddit-post-tool.js.map +1 -1
- package/build/tools/reddit-subreddit/reddit-subreddit-tool.js +3 -1
- package/build/tools/reddit-subreddit/reddit-subreddit-tool.js.map +1 -1
- package/build/tools/reddit-user/reddit-user-tool.js +3 -1
- package/build/tools/reddit-user/reddit-user-tool.js.map +1 -1
- package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js +3 -1
- package/build/tools/scrape-as-markdown/scrape-as-markdown-tool.js.map +1 -1
- package/build/tools/screenshot/screenshot-tool.js +3 -1
- package/build/tools/screenshot/screenshot-tool.js.map +1 -1
- package/build/tools/search/index.js +18 -0
- package/build/tools/search/index.js.map +1 -0
- package/build/tools/search/search-tool.js +62 -0
- package/build/tools/search/search-tool.js.map +1 -0
- package/build/tools/target-product/target-product-tool.js +3 -1
- package/build/tools/target-product/target-product-tool.js.map +1 -1
- package/build/tools/target-search/target-search-tool.js +3 -1
- package/build/tools/target-search/target-search-tool.js.map +1 -1
- package/build/tools/tiktok-post/tiktok-post-tool.js +3 -1
- package/build/tools/tiktok-post/tiktok-post-tool.js.map +1 -1
- package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js +3 -1
- package/build/tools/tiktok-shop-product/tiktok-shop-product-tool.js.map +1 -1
- package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js +3 -1
- package/build/tools/tiktok-shop-search/tiktok-shop-search-tool.js.map +1 -1
- package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js +3 -1
- package/build/tools/tiktok-shop-url/tiktok-shop-url-tool.js.map +1 -1
- package/build/tools/walmart-product/walmart-product-tool.js +3 -1
- package/build/tools/walmart-product/walmart-product-tool.js.map +1 -1
- package/build/tools/walmart-search/walmart-search-tool.js +3 -1
- package/build/tools/walmart-search/walmart-search-tool.js.map +1 -1
- package/build/tools/youtube-channel/youtube-channel-tool.js +3 -1
- package/build/tools/youtube-channel/youtube-channel-tool.js.map +1 -1
- package/build/tools/youtube-metadata/youtube-metadata-tool.js +3 -1
- package/build/tools/youtube-metadata/youtube-metadata-tool.js.map +1 -1
- package/build/tools/youtube-search/youtube-search-tool.js +3 -1
- package/build/tools/youtube-search/youtube-search-tool.js.map +1 -1
- package/build/tools/youtube-subtitles/youtube-subtitles-tool.js +3 -1
- package/build/tools/youtube-subtitles/youtube-subtitles-tool.js.map +1 -1
- package/build/zod/zod-types.js +25 -1
- package/build/zod/zod-types.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CrawlCancelTool = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const tool_1 = require("../tool");
|
|
10
|
+
class CrawlCancelTool extends tool_1.Tool {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.toolset = constants_1.TOOLSET.WEB;
|
|
14
|
+
this.transformResponse = ({ data }) => ({
|
|
15
|
+
data: JSON.stringify({ crawl_id: data.crawl_id, status: data.status, url: data.url }),
|
|
16
|
+
});
|
|
17
|
+
this.register = ({ server, sapiClient, auth }) => {
|
|
18
|
+
server.registerTool('crawl_cancel', {
|
|
19
|
+
title: 'Cancel Crawl',
|
|
20
|
+
description: 'Stop a crawl started with crawl_start so it crawls no more pages. ' +
|
|
21
|
+
'Pages crawled before the cancel stay readable with crawl_results.',
|
|
22
|
+
inputSchema: {
|
|
23
|
+
crawlId: zod_1.default.string().describe('Crawl id returned by crawl_start'),
|
|
24
|
+
},
|
|
25
|
+
annotations: {
|
|
26
|
+
title: 'Cancel Crawl',
|
|
27
|
+
readOnlyHint: false,
|
|
28
|
+
destructiveHint: true,
|
|
29
|
+
idempotentHint: true,
|
|
30
|
+
openWorldHint: true,
|
|
31
|
+
},
|
|
32
|
+
}, async ({ crawlId }, extra) => {
|
|
33
|
+
const data = await sapiClient.cancelCrawl({ auth, crawlId, extra });
|
|
34
|
+
const { data: text } = this.transformResponse({ data });
|
|
35
|
+
return { content: [{ type: 'text', text }] };
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.CrawlCancelTool = CrawlCancelTool;
|
|
41
|
+
//# sourceMappingURL=crawl-cancel-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crawl-cancel-tool.js","sourceRoot":"","sources":["../../../src/tools/crawl-cancel/crawl-cancel-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA0C;AAE1C,kCAAqD;AAErD,MAAa,eAAgB,SAAQ,WAAI;IAAzC;;QACE,YAAO,GAAG,mBAAO,CAAC,GAAG,CAAC;QAEtB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAiC,EAAE,EAAE,CAAC,CAAC;YAChE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;SACtF,CAAC,CAAC;QAEH,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;gBACE,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,oEAAoE;oBACpE,mEAAmE;gBACrE,WAAW,EAAE;oBACX,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;iBACjE;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,cAAc;oBACrB,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,IAAI;oBACrB,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAuB,EAAE,KAAoB,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEpE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAnCD,0CAmCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./crawl-cancel-tool"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/crawl-cancel/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CrawlResultsTool = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const zod_types_1 = require("../../zod/zod-types");
|
|
10
|
+
const tool_1 = require("../tool");
|
|
11
|
+
const PAGES_BUDGET_BYTES = 49000;
|
|
12
|
+
const zodResultsPosition = zod_1.default
|
|
13
|
+
.object({
|
|
14
|
+
upstreamCursor: zod_1.default.string().optional(),
|
|
15
|
+
offset: zod_1.default.number().int().min(0),
|
|
16
|
+
contentOffset: zod_1.default.number().int().min(0),
|
|
17
|
+
returned: zod_1.default.number().int().min(0),
|
|
18
|
+
})
|
|
19
|
+
.strict();
|
|
20
|
+
const START_POSITION = { offset: 0, contentOffset: 0, returned: 0 };
|
|
21
|
+
const INVALID_CURSOR_MESSAGE = 'Invalid cursor: pass the nextCursor value from a previous crawl_results call.';
|
|
22
|
+
const encodeCursor = (position) => Buffer.from(JSON.stringify(position)).toString('base64url');
|
|
23
|
+
const parseCursorJson = (cursor) => {
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(Buffer.from(cursor, 'base64url').toString());
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
throw new Error(INVALID_CURSOR_MESSAGE);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
const decodeCursor = (cursor) => {
|
|
32
|
+
if (!cursor) {
|
|
33
|
+
return START_POSITION;
|
|
34
|
+
}
|
|
35
|
+
const position = zodResultsPosition.safeParse(parseCursorJson(cursor));
|
|
36
|
+
if (!position.success) {
|
|
37
|
+
throw new Error(INVALID_CURSOR_MESSAGE);
|
|
38
|
+
}
|
|
39
|
+
return position.data;
|
|
40
|
+
};
|
|
41
|
+
const serializedBytes = (text) => Buffer.byteLength(JSON.stringify(text));
|
|
42
|
+
const isHighSurrogate = (char) => /[\uD800-\uDBFF]/.test(char);
|
|
43
|
+
const prefixWithinBudget = (text, budgetBytes) => {
|
|
44
|
+
let fits = 0;
|
|
45
|
+
let tooLong = Math.min(text.length, budgetBytes) + 1;
|
|
46
|
+
while (tooLong - fits > 1) {
|
|
47
|
+
const middle = Math.floor((fits + tooLong) / 2);
|
|
48
|
+
if (serializedBytes(text.slice(0, middle)) <= budgetBytes) {
|
|
49
|
+
fits = middle;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
tooLong = middle;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return isHighSurrogate(text.charAt(fits - 1)) ? text.slice(0, fits - 1) : text.slice(0, fits);
|
|
56
|
+
};
|
|
57
|
+
const pageSummary = (page) => ({
|
|
58
|
+
url: page.url,
|
|
59
|
+
depth: page.depth,
|
|
60
|
+
status: page.status,
|
|
61
|
+
contentError: page.content_error,
|
|
62
|
+
});
|
|
63
|
+
const entryOverheadBytes = (summary) => Buffer.byteLength(JSON.stringify(Object.assign(Object.assign({}, summary), { content: '', contentPart: {
|
|
64
|
+
start: Number.MAX_SAFE_INTEGER,
|
|
65
|
+
end: Number.MAX_SAFE_INTEGER,
|
|
66
|
+
totalLength: Number.MAX_SAFE_INTEGER,
|
|
67
|
+
} }))) + 1;
|
|
68
|
+
const collectPages = ({ data, position, limit, }) => {
|
|
69
|
+
var _a;
|
|
70
|
+
const pages = [];
|
|
71
|
+
let { offset, contentOffset, returned } = position;
|
|
72
|
+
let budgetBytes = PAGES_BUDGET_BYTES;
|
|
73
|
+
while (offset < data.pages.length && pages.length < limit) {
|
|
74
|
+
const page = data.pages[offset];
|
|
75
|
+
const summary = pageSummary(page);
|
|
76
|
+
const overheadBytes = entryOverheadBytes(summary);
|
|
77
|
+
const content = (_a = page.content) !== null && _a !== void 0 ? _a : '';
|
|
78
|
+
const remaining = content.slice(contentOffset);
|
|
79
|
+
const chunk = prefixWithinBudget(remaining, Math.max(0, budgetBytes - overheadBytes));
|
|
80
|
+
const fitsWhole = overheadBytes <= budgetBytes && chunk.length === remaining.length;
|
|
81
|
+
if (!fitsWhole && pages.length > 0) {
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
const isSplit = contentOffset > 0 || chunk.length < remaining.length;
|
|
85
|
+
const entry = Object.assign(Object.assign(Object.assign({}, summary), { content: page.content === undefined ? undefined : chunk }), (isSplit && {
|
|
86
|
+
contentPart: {
|
|
87
|
+
start: contentOffset,
|
|
88
|
+
end: contentOffset + chunk.length,
|
|
89
|
+
totalLength: content.length,
|
|
90
|
+
},
|
|
91
|
+
}));
|
|
92
|
+
pages.push(entry);
|
|
93
|
+
budgetBytes -= Buffer.byteLength(JSON.stringify(entry)) + 1;
|
|
94
|
+
if (chunk.length < remaining.length) {
|
|
95
|
+
contentOffset += chunk.length;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
offset += 1;
|
|
99
|
+
contentOffset = 0;
|
|
100
|
+
returned += 1;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
pages,
|
|
104
|
+
stoppedAt: { upstreamCursor: position.upstreamCursor, offset, contentOffset, returned },
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
const nextPosition = ({ data, stoppedAt, }) => {
|
|
108
|
+
if (stoppedAt.offset < data.pages.length) {
|
|
109
|
+
return stoppedAt;
|
|
110
|
+
}
|
|
111
|
+
if (data.total !== undefined && stoppedAt.returned >= data.total) {
|
|
112
|
+
return undefined;
|
|
113
|
+
}
|
|
114
|
+
if (data.next) {
|
|
115
|
+
return Object.assign(Object.assign({}, START_POSITION), { upstreamCursor: data.next, returned: stoppedAt.returned });
|
|
116
|
+
}
|
|
117
|
+
return undefined;
|
|
118
|
+
};
|
|
119
|
+
class CrawlResultsTool extends tool_1.Tool {
|
|
120
|
+
constructor() {
|
|
121
|
+
super(...arguments);
|
|
122
|
+
this.toolset = constants_1.TOOLSET.WEB;
|
|
123
|
+
this.transformResponse = ({ data, position, limit, }) => {
|
|
124
|
+
const { pages, stoppedAt } = collectPages({ data, position, limit });
|
|
125
|
+
const next = nextPosition({ data, stoppedAt });
|
|
126
|
+
return {
|
|
127
|
+
data: JSON.stringify({
|
|
128
|
+
pages,
|
|
129
|
+
nextCursor: next && encodeCursor(next),
|
|
130
|
+
total: data.total,
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
this.register = ({ server, sapiClient, auth }) => {
|
|
135
|
+
server.registerTool('crawl_results', {
|
|
136
|
+
title: 'Crawl Results',
|
|
137
|
+
description: 'Return crawled pages as Markdown from a crawl started with crawl_start, a few at a time. ' +
|
|
138
|
+
'Call it once crawl_status reports the crawl is no longer "pending". ' +
|
|
139
|
+
'Crawled pages can be long and overflow your context, so each call returns at most about 50 KB and up to `limit` pages (10 by default). ' +
|
|
140
|
+
'A page too long for one call is split across calls; each part carries contentPart with its character range. ' +
|
|
141
|
+
'Pass nextCursor back to get the rest; when it is missing, you have every page. ' +
|
|
142
|
+
'For precise work, prefer map plus scrape_as_markdown on the pages you need.',
|
|
143
|
+
inputSchema: {
|
|
144
|
+
crawlId: zod_1.default.string().describe('Crawl id returned by crawl_start'),
|
|
145
|
+
cursor: zod_1.default
|
|
146
|
+
.string()
|
|
147
|
+
.describe('nextCursor from a previous crawl_results call; omit for the first pages')
|
|
148
|
+
.optional(),
|
|
149
|
+
limit: (0, zod_types_1.zodLimit)({ limitedItems: 'pages to return', max: 100 }),
|
|
150
|
+
},
|
|
151
|
+
annotations: {
|
|
152
|
+
title: 'Crawl Results',
|
|
153
|
+
readOnlyHint: true,
|
|
154
|
+
destructiveHint: false,
|
|
155
|
+
openWorldHint: true,
|
|
156
|
+
},
|
|
157
|
+
}, async ({ crawlId, cursor, limit }, extra) => {
|
|
158
|
+
const position = decodeCursor(cursor);
|
|
159
|
+
const data = await sapiClient.listCrawlPages({
|
|
160
|
+
auth,
|
|
161
|
+
crawlId,
|
|
162
|
+
cursor: position.upstreamCursor,
|
|
163
|
+
extra,
|
|
164
|
+
});
|
|
165
|
+
const { data: text } = this.transformResponse({ data, position, limit });
|
|
166
|
+
return { content: [{ type: 'text', text }] };
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
exports.CrawlResultsTool = CrawlResultsTool;
|
|
172
|
+
//# sourceMappingURL=crawl-results-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crawl-results-tool.js","sourceRoot":"","sources":["../../../src/tools/crawl-results/crawl-results-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./crawl-results-tool"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/crawl-results/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.CrawlStartTool = void 0;
|
|
18
|
+
const zod_1 = __importDefault(require("zod"));
|
|
19
|
+
const constants_1 = require("../../constants");
|
|
20
|
+
const zod_types_1 = require("../../zod/zod-types");
|
|
21
|
+
const tool_1 = require("../tool");
|
|
22
|
+
class CrawlStartTool extends tool_1.Tool {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.toolset = constants_1.TOOLSET.WEB;
|
|
26
|
+
this.transformResponse = ({ data }) => ({
|
|
27
|
+
data: JSON.stringify({ crawl_id: data.crawl_id, status: data.status, url: data.url }),
|
|
28
|
+
});
|
|
29
|
+
this.register = ({ server, sapiClient, auth }) => {
|
|
30
|
+
server.registerTool('crawl_start', {
|
|
31
|
+
title: 'Start Crawl',
|
|
32
|
+
description: 'Start crawling a website and return the crawl id right away, without waiting for it to finish. ' +
|
|
33
|
+
'Check progress with crawl_status, read pages with crawl_results and stop it early with crawl_cancel. ' +
|
|
34
|
+
'Crawled content can overflow your context, so `limit` defaults to 10 pages. ' +
|
|
35
|
+
'For precise work, prefer map plus scrape_as_markdown on the pages you need.',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
url: zod_1.default.string().describe('Website URL to start crawling from'),
|
|
38
|
+
limit: (0, zod_types_1.zodLimit)({ limitedItems: 'pages to crawl', max: 100 }),
|
|
39
|
+
maxDepth: zod_1.default
|
|
40
|
+
.number()
|
|
41
|
+
.int()
|
|
42
|
+
.min(1)
|
|
43
|
+
.max(10000)
|
|
44
|
+
.describe('How many links deep to follow from the start URL')
|
|
45
|
+
.optional(),
|
|
46
|
+
sitemap: zod_types_1.zodSitemap,
|
|
47
|
+
domainFilter: zod_types_1.zodDomainFilter,
|
|
48
|
+
selectPaths: zod_types_1.zodSelectPaths,
|
|
49
|
+
excludePaths: zod_types_1.zodExcludePaths,
|
|
50
|
+
geo: zod_types_1.zodGeo,
|
|
51
|
+
locale: zod_types_1.zodLocale,
|
|
52
|
+
},
|
|
53
|
+
annotations: {
|
|
54
|
+
title: 'Start Crawl',
|
|
55
|
+
readOnlyHint: false,
|
|
56
|
+
destructiveHint: false,
|
|
57
|
+
idempotentHint: false,
|
|
58
|
+
openWorldHint: true,
|
|
59
|
+
},
|
|
60
|
+
}, async (_a, extra) => {
|
|
61
|
+
var { maxDepth, domainFilter, selectPaths, excludePaths } = _a, params = __rest(_a, ["maxDepth", "domainFilter", "selectPaths", "excludePaths"]);
|
|
62
|
+
const data = await sapiClient.startCrawl({
|
|
63
|
+
auth,
|
|
64
|
+
params: Object.assign(Object.assign({}, params), { output: 'markdown', max_depth: maxDepth, domain_filter: domainFilter, select_paths: selectPaths, exclude_paths: excludePaths }),
|
|
65
|
+
extra,
|
|
66
|
+
});
|
|
67
|
+
const { data: text } = this.transformResponse({ data });
|
|
68
|
+
return { content: [{ type: 'text', text }] };
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.CrawlStartTool = CrawlStartTool;
|
|
74
|
+
//# sourceMappingURL=crawl-start-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crawl-start-tool.js","sourceRoot":"","sources":["../../../src/tools/crawl-start/crawl-start-tool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAAoB;AAEpB,+CAA0C;AAE1C,mDAQ6B;AAC7B,kCAAqD;AAcrD,MAAa,cAAe,SAAQ,WAAI;IAAxC;;QACE,YAAO,GAAG,mBAAO,CAAC,GAAG,CAAC;QAEtB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAgC,EAAE,EAAE,CAAC,CAAC;YAC/D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;SACtF,CAAC,CAAC;QAEH,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;gBACE,KAAK,EAAE,aAAa;gBACpB,WAAW,EACT,iGAAiG;oBACjG,uGAAuG;oBACvG,8EAA8E;oBAC9E,6EAA6E;gBAC/E,WAAW,EAAE;oBACX,GAAG,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;oBAC9D,KAAK,EAAE,IAAA,oBAAQ,EAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;oBAC7D,QAAQ,EAAE,aAAC;yBACR,MAAM,EAAE;yBACR,GAAG,EAAE;yBACL,GAAG,CAAC,CAAC,CAAC;yBACN,GAAG,CAAC,KAAK,CAAC;yBACV,QAAQ,CAAC,kDAAkD,CAAC;yBAC5D,QAAQ,EAAE;oBACb,OAAO,EAAE,sBAAU;oBACnB,YAAY,EAAE,2BAAe;oBAC7B,WAAW,EAAE,0BAAc;oBAC3B,YAAY,EAAE,2BAAe;oBAC7B,GAAG,EAAE,kBAAM;oBACX,MAAM,EAAE,qBAAS;iBAClB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,aAAa;oBACpB,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,KAAK;oBACtB,cAAc,EAAE,KAAK;oBACrB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EACH,EAAkF,EAClF,KAAoB,EACpB,EAAE;oBAFF,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,OAA+B,EAA1B,MAAM,cAA9D,2DAAgE,CAAF;gBAG9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC;oBACvC,IAAI;oBACJ,MAAM,kCACD,MAAM,KACT,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,QAAQ,EACnB,aAAa,EAAE,YAAY,EAC3B,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,YAAY,GAC5B;oBACD,KAAK;iBACN,CAAC,CAAC;gBAEH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAjED,wCAiEC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./crawl-start-tool"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/crawl-start/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CrawlStatusTool = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const constants_1 = require("../../constants");
|
|
9
|
+
const tool_1 = require("../tool");
|
|
10
|
+
class CrawlStatusTool extends tool_1.Tool {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.toolset = constants_1.TOOLSET.WEB;
|
|
14
|
+
this.transformResponse = ({ data }) => ({
|
|
15
|
+
data: JSON.stringify(data),
|
|
16
|
+
});
|
|
17
|
+
this.register = ({ server, sapiClient, auth }) => {
|
|
18
|
+
server.registerTool('crawl_status', {
|
|
19
|
+
title: 'Crawl Status',
|
|
20
|
+
description: 'Report the progress of a crawl started with crawl_start: its status and how many pages were discovered, completed and failed. ' +
|
|
21
|
+
'The crawl is finished once status is no longer "pending".',
|
|
22
|
+
inputSchema: {
|
|
23
|
+
crawlId: zod_1.default.string().describe('Crawl id returned by crawl_start'),
|
|
24
|
+
},
|
|
25
|
+
annotations: {
|
|
26
|
+
title: 'Crawl Status',
|
|
27
|
+
readOnlyHint: true,
|
|
28
|
+
destructiveHint: false,
|
|
29
|
+
openWorldHint: true,
|
|
30
|
+
},
|
|
31
|
+
}, async ({ crawlId }, extra) => {
|
|
32
|
+
const data = await sapiClient.getCrawlStatus({ auth, crawlId, extra });
|
|
33
|
+
const { data: text } = this.transformResponse({ data });
|
|
34
|
+
return { content: [{ type: 'text', text }] };
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.CrawlStatusTool = CrawlStatusTool;
|
|
40
|
+
//# sourceMappingURL=crawl-status-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crawl-status-tool.js","sourceRoot":"","sources":["../../../src/tools/crawl-status/crawl-status-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AAEpB,+CAA0C;AAE1C,kCAAqD;AAErD,MAAa,eAAgB,SAAQ,WAAI;IAAzC;;QACE,YAAO,GAAG,mBAAO,CAAC,GAAG,CAAC;QAEtB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoC,EAAE,EAAE,CAAC,CAAC;YACnE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;QAEH,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;gBACE,KAAK,EAAE,cAAc;gBACrB,WAAW,EACT,gIAAgI;oBAChI,2DAA2D;gBAC7D,WAAW,EAAE;oBACX,OAAO,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;iBACjE;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,cAAc;oBACrB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,EAAE,OAAO,EAAuB,EAAE,KAAoB,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEvE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/C,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAlCD,0CAkCC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./crawl-status-tool"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/crawl-status/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
|
|
@@ -27,7 +27,9 @@ class GoogleAdsTool extends tool_1.Tool {
|
|
|
27
27
|
this.register = ({ server, sapiClient, auth }) => {
|
|
28
28
|
server.registerTool('google_ads', {
|
|
29
29
|
title: 'Google Ads',
|
|
30
|
-
description: '
|
|
30
|
+
description: 'Search Google through the Decodo Web Scraping API (`google_ads` target) and return the paid Google Ads shown for a query, parsed as JSON. ' +
|
|
31
|
+
'Use it to see which advertisers bid on a keyword and what their ads say. ' +
|
|
32
|
+
'Docs: https://help.decodo.com/docs/web-scraping-api-google-ads',
|
|
31
33
|
inputSchema: {
|
|
32
34
|
query: zod_1.default.string().describe('Search query for Google Ads (e.g., "laptop")'),
|
|
33
35
|
geo: zod_types_1.zodGeo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-ads-tool.js","sourceRoot":"","sources":["../../../src/tools/google-ads/google-ads-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAoF;AACpF,kCAAqD;AAErD,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,aAAc,SAAQ,WAAI;IAAvC;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAIzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,aAAa,CAAC,2BAA2B,EAAE,CAAC;gBACtE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;gBACE,KAAK,EAAE,YAAY;gBACnB,WAAW,
|
|
1
|
+
{"version":3,"file":"google-ads-tool.js","sourceRoot":"","sources":["../../../src/tools/google-ads/google-ads-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAoF;AACpF,kCAAqD;AAErD,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,aAAc,SAAQ,WAAI;IAAvC;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAIzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,aAAa,CAAC,2BAA2B,EAAE,CAAC;gBACtE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,YAAY,EACZ;gBACE,KAAK,EAAE,YAAY;gBACnB,WAAW,EACT,4IAA4I;oBAC5I,2EAA2E;oBAC3E,gEAAgE;gBAClE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;oBAC1E,GAAG,EAAE,kBAAM;oBACX,MAAM,EAAE,qBAAS;oBACjB,QAAQ,EAAE,uBAAW;oBACrB,UAAU,EAAE,yBAAa;oBACzB,QAAQ,EAAE,WAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,YAAY;oBACnB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,SAAS,EACxB,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AA3DD,sCA2DC;AAxDgB,yCAA2B,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW"}
|
|
@@ -23,7 +23,9 @@ class GoogleAiModeTool extends tool_1.Tool {
|
|
|
23
23
|
this.register = ({ server, sapiClient, auth }) => {
|
|
24
24
|
server.registerTool('google_ai_mode', {
|
|
25
25
|
title: 'Google AI Mode',
|
|
26
|
-
description: '
|
|
26
|
+
description: 'Ask Google AI Mode a question through the Decodo Web Scraping API (`google_ai_mode` target) and return its AI answer as JSON. ' +
|
|
27
|
+
"Use it to see what Google's AI search says about a query. " +
|
|
28
|
+
'Docs: https://help.decodo.com/docs/web-scraping-api-google-ai-mode',
|
|
27
29
|
inputSchema: {
|
|
28
30
|
query: zod_1.default
|
|
29
31
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-ai-mode-tool.js","sourceRoot":"","sources":["../../../src/tools/google-ai-mode/google-ai-mode-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,aAAa,GAAG,aAAC;KACpB,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,CAAC,wCAAwC,CAAC;KAClD,QAAQ,EAAE,CAAC;AAEd,MAAM,MAAM,GAAG,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEpG,MAAa,gBAAiB,SAAQ,WAAI;IAA1C;;QACE,YAAO,GAAG,mBAAO,CAAC,EAAE,CAAC;QAErB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,
|
|
1
|
+
{"version":3,"file":"google-ai-mode-tool.js","sourceRoot":"","sources":["../../../src/tools/google-ai-mode/google-ai-mode-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,kCAAqD;AAGrD,MAAM,aAAa,GAAG,aAAC;KACpB,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3B,QAAQ,CAAC,wCAAwC,CAAC;KAClD,QAAQ,EAAE,CAAC;AAEd,MAAM,MAAM,GAAG,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEpG,MAAa,gBAAiB,SAAQ,WAAI;IAA1C;;QACE,YAAO,GAAG,mBAAO,CAAC,EAAE,CAAC;QAErB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EACT,gIAAgI;oBAChI,4DAA4D;oBAC5D,oEAAoE;gBACtE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC;yBACL,MAAM,EAAE;yBACR,QAAQ,CACP,8EAA8E,CAC/E;oBACH,GAAG,EAAE,MAAM;oBACX,UAAU,EAAE,aAAa;iBAC1B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,gBAAgB;oBACvB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,YAAY,EAC3B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AApDD,4CAoDC"}
|
|
@@ -23,7 +23,9 @@ class GoogleLensTool extends tool_1.Tool {
|
|
|
23
23
|
this.register = ({ server, sapiClient, auth }) => {
|
|
24
24
|
server.registerTool('google_lens', {
|
|
25
25
|
title: 'Google Lens',
|
|
26
|
-
description: '
|
|
26
|
+
description: 'Run a Google Lens image search for an image URL through the Decodo Web Scraping API (`google_lens` target) and return the parsed visual matches as JSON. ' +
|
|
27
|
+
'Use it to identify what an image shows or find pages where it appears. ' +
|
|
28
|
+
'Docs: https://help.decodo.com/docs/web-scraping-api-google-lens',
|
|
27
29
|
inputSchema: {
|
|
28
30
|
query: zod_1.default.string().describe('Image URL for Google Lens search (e.g., "https://example.com/image.jpg")'),
|
|
29
31
|
jsRender: zod_types_1.zodJsRender,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-lens-tool.js","sourceRoot":"","sources":["../../../src/tools/google-lens/google-lens-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAiE;AACjE,kCAAqD;AAErD,MAAa,cAAe,SAAQ,WAAI;IAAxC;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAIzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,cAAc,CAAC,2BAA2B,EAAE,CAAC;gBACvE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;gBACE,KAAK,EAAE,aAAa;gBACpB,WAAW,
|
|
1
|
+
{"version":3,"file":"google-lens-tool.js","sourceRoot":"","sources":["../../../src/tools/google-lens/google-lens-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAiE;AACjE,kCAAqD;AAErD,MAAa,cAAe,SAAQ,WAAI;IAAxC;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAIzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,cAAc,CAAC,2BAA2B,EAAE,CAAC;gBACvE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,aAAa,EACb;gBACE,KAAK,EAAE,aAAa;gBACpB,WAAW,EACT,2JAA2J;oBAC3J,yEAAyE;oBACzE,iEAAiE;gBACnE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;oBACtG,QAAQ,EAAE,uBAAW;oBACrB,UAAU,EAAE,yBAAa;iBAC1B;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,aAAa;oBACpB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,UAAU,EACzB,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAxDD,wCAwDC;AArDgB,0CAA2B,GAAG,CAAC,eAAe,CAAC,AAApB,CAAqB"}
|
|
@@ -23,7 +23,9 @@ class GoogleSearchTool extends tool_1.Tool {
|
|
|
23
23
|
this.register = ({ server, sapiClient, auth }) => {
|
|
24
24
|
server.registerTool('google_search', {
|
|
25
25
|
title: 'Google Search',
|
|
26
|
-
description: '
|
|
26
|
+
description: 'Search Google through the Decodo Web Scraping API (`google_search` target) and return the parsed results page as JSON, including organic results. ' +
|
|
27
|
+
'Use it for fresh web results or Google rankings for a query. ' +
|
|
28
|
+
'Docs: https://help.decodo.com/docs/web-scraping-api-google-search',
|
|
27
29
|
inputSchema: {
|
|
28
30
|
query: zod_1.default.string().describe('Search query'),
|
|
29
31
|
geo: zod_types_1.zodGeo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-search-tool.js","sourceRoot":"","sources":["../../../src/tools/google-search/google-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAqE;AACrE,kCAAqD;AAErD,MAAa,gBAAiB,SAAQ,WAAI;IAA1C;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAWzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,gBAAgB,CAAC,2BAA2B,EAAE,CAAC;gBACzE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;gBACE,KAAK,EAAE,eAAe;gBACtB,WAAW,
|
|
1
|
+
{"version":3,"file":"google-search-tool.js","sourceRoot":"","sources":["../../../src/tools/google-search/google-search-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,uCAAuE;AACvE,mDAAqE;AACrE,kCAAqD;AAErD,MAAa,gBAAiB,SAAQ,WAAI;IAA1C;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAWzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,KAAK,MAAM,aAAa,IAAI,gBAAgB,CAAC,2BAA2B,EAAE,CAAC;gBACzE,IAAI,GAAG,IAAA,iCAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;gBACE,KAAK,EAAE,eAAe;gBACtB,WAAW,EACT,oJAAoJ;oBACpJ,+DAA+D;oBAC/D,mEAAmE;gBACrE,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAC1C,GAAG,EAAE,kBAAM;oBACX,MAAM,EAAE,qBAAS;oBACjB,QAAQ,EAAE,uBAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,eAAe;oBACtB,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,YAAY,EAC3B,KAAK,EAAE,IAAI,GACe,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAExD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI;yBACL;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;;AAhED,4CAgEC;AA7DQ,4CAA2B,GAAG;IACnC,QAAQ;IACR,YAAY;IACZ,uBAAuB;IACvB,UAAU;IACV,sBAAsB;IACtB,wBAAwB;CACzB,AAPiC,CAOhC"}
|
|
@@ -23,7 +23,9 @@ class GoogleTravelHotelsTool extends tool_1.Tool {
|
|
|
23
23
|
this.register = ({ server, sapiClient, auth }) => {
|
|
24
24
|
server.registerTool('google_travel_hotels', {
|
|
25
25
|
title: 'Google Travel Hotels',
|
|
26
|
-
description: '
|
|
26
|
+
description: 'Search Google Travel for hotels through the Decodo Web Scraping API (`google_travel_hotels` target) and return the listings as Markdown. ' +
|
|
27
|
+
'Use it to find hotel options and prices for a destination. ' +
|
|
28
|
+
'Docs: https://help.decodo.com/docs/web-scraping-api-google-travel-hotels',
|
|
27
29
|
inputSchema: {
|
|
28
30
|
query: zod_1.default.string().describe('Hotel search query (e.g., "trivago", "hotels in Paris")'),
|
|
29
31
|
jsRender: zod_types_1.zodJsRender,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-travel-hotels-tool.js","sourceRoot":"","sources":["../../../src/tools/google-travel-hotels/google-travel-hotels-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAA4E;AAC5E,kCAAqD;AAGrD,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,sBAAuB,SAAQ,WAAI;IAAhD;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAEzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,
|
|
1
|
+
{"version":3,"file":"google-travel-hotels-tool.js","sourceRoot":"","sources":["../../../src/tools/google-travel-hotels/google-travel-hotels-tool.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAoB;AACpB,2CAAwC;AAExC,+CAA0C;AAC1C,mDAA4E;AAC5E,kCAAqD;AAGrD,MAAM,WAAW,GAAG,aAAC;KAClB,MAAM,EAAE;KACR,QAAQ,CAAC,qCAAqC,CAAC;KAC/C,QAAQ,EAAE,CAAC;AAEd,MAAa,sBAAuB,SAAQ,WAAI;IAAhD;;QACE,YAAO,GAAG,mBAAO,CAAC,MAAM,CAAC;QAEzB,sBAAiB,GAAG,CAAC,EAAE,IAAI,EAAoB,EAAE,EAAE;YACjD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;QAEF,aAAQ,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAwB,EAAE,EAAE;YAChE,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;gBACE,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EACT,2IAA2I;oBAC3I,6DAA6D;oBAC7D,0EAA0E;gBAC5E,WAAW,EAAE;oBACX,KAAK,EAAE,aAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;oBACrF,QAAQ,EAAE,uBAAW;oBACrB,MAAM,EAAE,qBAAS;oBACjB,UAAU,EAAE,yBAAa;oBACzB,QAAQ,EAAE,WAAW;iBACtB;gBACD,WAAW,EAAE;oBACX,KAAK,EAAE,sBAAsB;oBAC7B,YAAY,EAAE,IAAI;oBAClB,eAAe,EAAE,KAAK;oBACtB,aAAa,EAAE,IAAI;iBACpB;aACF,EACD,KAAK,EAAE,cAAiC,EAAE,KAAoB,EAAE,EAAE;gBAChE,MAAM,MAAM,GAAG,gCACV,cAAc,KACjB,MAAM,EAAE,eAAM,CAAC,kBAAkB,EACjC,QAAQ,EAAE,IAAI,GACY,CAAC;gBAE7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,MAAM,CAAS,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE1F,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;yBAC3B;qBACF;iBACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CAAA;AAlDD,wDAkDC"}
|
package/build/tools/index.js
CHANGED
|
@@ -44,4 +44,10 @@ __exportStar(require("./youtube-subtitles"), exports);
|
|
|
44
44
|
__exportStar(require("./youtube-search"), exports);
|
|
45
45
|
__exportStar(require("./scrape-as-markdown"), exports);
|
|
46
46
|
__exportStar(require("./screenshot"), exports);
|
|
47
|
+
__exportStar(require("./search"), exports);
|
|
48
|
+
__exportStar(require("./map"), exports);
|
|
49
|
+
__exportStar(require("./crawl-start"), exports);
|
|
50
|
+
__exportStar(require("./crawl-status"), exports);
|
|
51
|
+
__exportStar(require("./crawl-results"), exports);
|
|
52
|
+
__exportStar(require("./crawl-cancel"), exports);
|
|
47
53
|
//# sourceMappingURL=index.js.map
|
package/build/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,uDAAqC;AACrC,gDAA8B;AAC9B,4CAA0B;AAC1B,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,+CAA6B;AAC7B,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,wDAAsC;AACtC,oDAAkC;AAClC,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,oDAAkC;AAClC,sDAAoC;AACpC,mDAAiC;AACjC,uDAAqC;AACrC,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,uDAAqC;AACrC,gDAA8B;AAC9B,4CAA0B;AAC1B,kDAAgC;AAChC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC;AACjC,yDAAuC;AACvC,+CAA6B;AAC7B,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,mDAAiC;AACjC,gDAA8B;AAC9B,uDAAqC;AACrC,wDAAsC;AACtC,oDAAkC;AAClC,mDAAiC;AACjC,oDAAkC;AAClC,qDAAmC;AACnC,oDAAkC;AAClC,sDAAoC;AACpC,mDAAiC;AACjC,uDAAqC;AACrC,+CAA6B;AAC7B,2CAAyB;AACzB,wCAAsB;AACtB,gDAA8B;AAC9B,iDAA+B;AAC/B,kDAAgC;AAChC,iDAA+B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./map-tool"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/map/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|