@apify/actors-mcp-server 0.4.9 → 0.4.11

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/dist/const.d.ts CHANGED
@@ -32,8 +32,10 @@ export declare enum HelperTools {
32
32
  KEY_VALUE_STORE_RECORD_GET = "get-key-value-store-record",
33
33
  STORE_SEARCH = "search-actors",
34
34
  DOCS_SEARCH = "search-apify-docs",
35
- DOCS_FETCH = "fetch-apify-docs"
35
+ DOCS_FETCH = "fetch-apify-docs",
36
+ GET_HTML_SKELETON = "get-html-skeleton"
36
37
  }
38
+ export declare const ACTOR_RAG_WEB_BROWSER = "apify/rag-web-browser";
37
39
  export declare const defaults: {
38
40
  actors: string[];
39
41
  };
@@ -47,6 +49,8 @@ export declare const ACTOR_CACHE_MAX_SIZE = 500;
47
49
  export declare const ACTOR_CACHE_TTL_SECS: number;
48
50
  export declare const APIFY_DOCS_CACHE_MAX_SIZE = 500;
49
51
  export declare const APIFY_DOCS_CACHE_TTL_SECS: number;
52
+ export declare const GET_HTML_SKELETON_CACHE_TTL_SECS: number;
53
+ export declare const GET_HTML_SKELETON_CACHE_MAX_SIZE = 200;
50
54
  export declare const ACTOR_PRICING_MODEL: {
51
55
  /** Rental Actors */
52
56
  readonly FLAT_PRICE_PER_MONTH: "FLAT_PRICE_PER_MONTH";
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;CAClC;AAED,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,6BAA6B,gEAAgE,CAAC;AAC3G,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,oBAAwC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,QAAisB,CAAC;AAExuB,eAAO,MAAM,mCAAmC,oDAAoD,CAAC;AAErG,eAAO,MAAM,sBAAsB,QAA0wB,CAAC;AAG9yB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AAEjD,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,eAAO,MAAM,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;IAC/B,iBAAiB,sBAAsB;CAC1C;AAED,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,6BAA6B,gEAAgE,CAAC;AAC3G,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,oBAAwC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,QAAisB,CAAC;AAExuB,eAAO,MAAM,mCAAmC,oDAAoD,CAAC;AAErG,eAAO,MAAM,sBAAsB,QAA0wB,CAAC;AAG9yB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AACjD,eAAO,MAAM,gCAAgC,QAAS,CAAC;AACvD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,eAAO,MAAM,eAAe,sBAAsB,CAAC"}
package/dist/const.js CHANGED
@@ -39,10 +39,12 @@ export var HelperTools;
39
39
  HelperTools["STORE_SEARCH"] = "search-actors";
40
40
  HelperTools["DOCS_SEARCH"] = "search-apify-docs";
41
41
  HelperTools["DOCS_FETCH"] = "fetch-apify-docs";
42
+ HelperTools["GET_HTML_SKELETON"] = "get-html-skeleton";
42
43
  })(HelperTools || (HelperTools = {}));
44
+ export const ACTOR_RAG_WEB_BROWSER = 'apify/rag-web-browser';
43
45
  export const defaults = {
44
46
  actors: [
45
- 'apify/rag-web-browser',
47
+ ACTOR_RAG_WEB_BROWSER,
46
48
  ],
47
49
  };
48
50
  export const ACTOR_ADDITIONAL_INSTRUCTIONS = 'Never call/execute tool/Actor unless confirmed by the user.';
@@ -56,6 +58,8 @@ export const ACTOR_CACHE_MAX_SIZE = 500;
56
58
  export const ACTOR_CACHE_TTL_SECS = 30 * 60; // 30 minutes
57
59
  export const APIFY_DOCS_CACHE_MAX_SIZE = 500;
58
60
  export const APIFY_DOCS_CACHE_TTL_SECS = 60 * 60; // 1 hour
61
+ export const GET_HTML_SKELETON_CACHE_TTL_SECS = 5 * 60; // 5 minutes
62
+ export const GET_HTML_SKELETON_CACHE_MAX_SIZE = 200;
59
63
  export const ACTOR_PRICING_MODEL = {
60
64
  /** Rental Actors */
61
65
  FLAT_PRICE_PER_MONTH: 'FLAT_PRICE_PER_MONTH',
package/dist/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts CHANGED
@@ -4,4 +4,6 @@ export declare const actorDefinitionPrunedCache: TTLLRUCache<ActorDefinitionPrun
4
4
  export declare const searchApifyDocsCache: TTLLRUCache<ApifyDocsSearchResult[]>;
5
5
  /** Stores processed Markdown content */
6
6
  export declare const fetchApifyDocsCache: TTLLRUCache<string>;
7
+ /** Stores HTML content per URL so we can paginate the tool output */
8
+ export declare const getHtmlSkeletonCache: TTLLRUCache<string>;
7
9
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,eAAO,MAAM,0BAA0B,oCAAqF,CAAC;AAC7H,eAAO,MAAM,oBAAoB,sCAAiG,CAAC;AACnI,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,qBAAgF,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,eAAO,MAAM,0BAA0B,oCAAqF,CAAC;AAC7H,eAAO,MAAM,oBAAoB,sCAAiG,CAAC;AACnI,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,qBAAgF,CAAC;AACjH,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,qBAA8F,CAAC"}
package/dist/state.js CHANGED
@@ -1,7 +1,9 @@
1
- import { ACTOR_CACHE_MAX_SIZE, ACTOR_CACHE_TTL_SECS, APIFY_DOCS_CACHE_MAX_SIZE, APIFY_DOCS_CACHE_TTL_SECS } from './const.js';
1
+ import { ACTOR_CACHE_MAX_SIZE, ACTOR_CACHE_TTL_SECS, APIFY_DOCS_CACHE_MAX_SIZE, APIFY_DOCS_CACHE_TTL_SECS, GET_HTML_SKELETON_CACHE_MAX_SIZE, GET_HTML_SKELETON_CACHE_TTL_SECS, } from './const.js';
2
2
  import { TTLLRUCache } from './utils/ttl-lru.js';
3
3
  export const actorDefinitionPrunedCache = new TTLLRUCache(ACTOR_CACHE_MAX_SIZE, ACTOR_CACHE_TTL_SECS);
4
4
  export const searchApifyDocsCache = new TTLLRUCache(APIFY_DOCS_CACHE_MAX_SIZE, APIFY_DOCS_CACHE_TTL_SECS);
5
5
  /** Stores processed Markdown content */
6
6
  export const fetchApifyDocsCache = new TTLLRUCache(APIFY_DOCS_CACHE_MAX_SIZE, APIFY_DOCS_CACHE_TTL_SECS);
7
+ /** Stores HTML content per URL so we can paginate the tool output */
8
+ export const getHtmlSkeletonCache = new TTLLRUCache(GET_HTML_SKELETON_CACHE_MAX_SIZE, GET_HTML_SKELETON_CACHE_TTL_SECS);
7
9
  //# sourceMappingURL=state.js.map
package/dist/state.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE9H,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,WAAW,CAAwB,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC7H,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,WAAW,CAA0B,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AACnI,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAS,yBAAyB,EAAE,yBAAyB,CAAC,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,gCAAgC,EAChC,gCAAgC,GACnC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,WAAW,CAAwB,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;AAC7H,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,WAAW,CAA0B,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AACnI,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,WAAW,CAAS,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AACjH,qEAAqE;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,WAAW,CAAS,gCAAgC,EAAE,gCAAgC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ToolEntry } from '../types.js';
2
+ export declare const getHtmlSkeleton: ToolEntry;
3
+ //# sourceMappingURL=get-html-skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-html-skeleton.d.ts","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAC;AAgC3D,eAAO,MAAM,eAAe,EAAE,SA8D7B,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { z } from 'zod';
2
+ import zodToJsonSchema from 'zod-to-json-schema';
3
+ import { ApifyClient } from '../apify-client.js';
4
+ import { ACTOR_RAG_WEB_BROWSER, HelperTools, TOOL_MAX_OUTPUT_CHARS } from '../const.js';
5
+ import { getHtmlSkeletonCache } from '../state.js';
6
+ import { ajv } from '../utils/ajv.js';
7
+ import { isValidHttpUrl } from '../utils/generic.js';
8
+ import { stripHtml } from '../utils/html.js';
9
+ import { buildMCPResponse } from '../utils/mcp.js';
10
+ const getHtmlSkeletonArgs = z.object({
11
+ url: z.string()
12
+ .min(1)
13
+ .describe('URL of the webpage to retrieve HTML skeleton from.'),
14
+ enableJavascript: z.boolean()
15
+ .optional()
16
+ .default(false)
17
+ .describe('Whether to enable JavaScript rendering. Enabling this may increase the time taken to retrieve the HTML skeleton.'),
18
+ chunk: z.number()
19
+ .optional()
20
+ .default(1)
21
+ .describe('Chunk number to retrieve when getting the content. The content is split into chunks to prevent exceeding the maximum tool output length.'),
22
+ });
23
+ export const getHtmlSkeleton = {
24
+ type: 'internal',
25
+ tool: {
26
+ name: HelperTools.GET_HTML_SKELETON,
27
+ actorFullName: HelperTools.GET_HTML_SKELETON,
28
+ description: `Retrieves the HTML skeleton (clean structure) from a given URL by stripping unwanted elements like scripts, styles, and non-essential attributes. This tool keeps only the core HTML structure, links, images, and data attributes for analysis. Supports optional JavaScript rendering for dynamic content and provides chunked output to handle large HTML. This tool is useful for building web scrapers and data extraction tasks where a clean HTML structure is needed for writing concrete selectors or parsers.`,
29
+ inputSchema: zodToJsonSchema(getHtmlSkeletonArgs),
30
+ ajvValidate: ajv.compile(zodToJsonSchema(getHtmlSkeletonArgs)),
31
+ call: async (toolArgs) => {
32
+ const { args, apifyToken } = toolArgs;
33
+ const parsed = getHtmlSkeletonArgs.parse(args);
34
+ if (!isValidHttpUrl(parsed.url)) {
35
+ return buildMCPResponse([`The provided URL is not a valid HTTP or HTTPS URL: ${parsed.url}`]);
36
+ }
37
+ // Try to get from cache first
38
+ let strippedHtml = getHtmlSkeletonCache.get(parsed.url);
39
+ if (!strippedHtml) {
40
+ // Not in cache, call the Actor for scraping
41
+ const client = new ApifyClient({ token: apifyToken });
42
+ const run = await client.actor(ACTOR_RAG_WEB_BROWSER).call({
43
+ query: parsed.url,
44
+ outputFormats: [
45
+ 'html',
46
+ ],
47
+ scrapingTool: parsed.enableJavascript ? 'browser-playwright' : 'raw-http',
48
+ });
49
+ const datasetItems = await client.dataset(run.defaultDatasetId).listItems();
50
+ if (datasetItems.items.length === 0) {
51
+ return buildMCPResponse([`The scraping Actor (${ACTOR_RAG_WEB_BROWSER}) did not return any output for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`]);
52
+ }
53
+ const firstItem = datasetItems.items[0];
54
+ if (firstItem.crawl.httpStatusMessage.toLocaleLowerCase() !== 'ok') {
55
+ return buildMCPResponse([`The scraping Actor (${ACTOR_RAG_WEB_BROWSER}) returned an HTTP status ${firstItem.crawl.httpStatusCode} (${firstItem.crawl.httpStatusMessage}) for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`]);
56
+ }
57
+ if (!firstItem.html) {
58
+ return buildMCPResponse([`The scraping Actor (${ACTOR_RAG_WEB_BROWSER}) did not return any HTML content for the URL: ${parsed.url}. Please check the Actor run for more details: ${run.id}`]);
59
+ }
60
+ strippedHtml = stripHtml(firstItem.html);
61
+ getHtmlSkeletonCache.set(parsed.url, strippedHtml);
62
+ }
63
+ // Pagination logic
64
+ const totalLength = strippedHtml.length;
65
+ const chunkSize = TOOL_MAX_OUTPUT_CHARS;
66
+ const totalChunks = Math.ceil(totalLength / chunkSize);
67
+ const startIndex = (parsed.chunk - 1) * chunkSize;
68
+ const endIndex = Math.min(startIndex + chunkSize, totalLength);
69
+ const chunkContent = strippedHtml.slice(startIndex, endIndex);
70
+ const hasNextChunk = parsed.chunk < totalChunks;
71
+ const chunkInfo = `\n\n--- Chunk ${parsed.chunk} of ${totalChunks} ---\n${hasNextChunk ? `Next chunk: ${parsed.chunk + 1}` : 'End of content'}`;
72
+ return buildMCPResponse([chunkContent + chunkInfo]);
73
+ },
74
+ },
75
+ };
76
+ //# sourceMappingURL=get-html-skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-html-skeleton.js","sourceRoot":"","sources":["../../src/tools/get-html-skeleton.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare const toolCategories: {
6
6
  docs: import("../types.js").ToolEntry[];
7
7
  runs: import("../types.js").ToolEntry[];
8
8
  storage: import("../types.js").ToolEntry[];
9
+ dev: import("../types.js").ToolEntry[];
9
10
  };
10
11
  export declare const toolCategoriesEnabledByDefault: ToolCategory[];
11
12
  export declare const defaultTools: import("../types.js").ToolEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAa,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAc9E,eAAO,MAAM,cAAc;;;;;;CA6B1B,CAAC;AACF,eAAO,MAAM,8BAA8B,EAAE,YAAY,EAGxD,CAAC;AAEF,eAAO,MAAM,YAAY,mCAA+D,CAAC;AAGzF,OAAO,EACH,gBAAgB,EAChB,mBAAmB,GACtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAa,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe9E,eAAO,MAAM,cAAc;;;;;;;CAgC1B,CAAC;AACF,eAAO,MAAM,8BAA8B,EAAE,YAAY,EAGxD,CAAC;AAEF,eAAO,MAAM,YAAY,mCAA+D,CAAC;AAGzF,OAAO,EACH,gBAAgB,EAChB,mBAAmB,GACtB,CAAC"}
@@ -5,6 +5,7 @@ import { getUserDatasetsList } from './dataset_collection.js';
5
5
  import { fetchActorDetailsTool } from './fetch-actor-details.js';
6
6
  import { fetchApifyDocsTool } from './fetch-apify-docs.js';
7
7
  import { getActorOutput } from './get-actor-output.js';
8
+ import { getHtmlSkeleton } from './get-html-skeleton.js';
8
9
  import { addTool } from './helpers.js';
9
10
  import { getKeyValueStore, getKeyValueStoreKeys, getKeyValueStoreRecord } from './key_value_store.js';
10
11
  import { getUserKeyValueStoresList } from './key_value_store_collection.js';
@@ -41,6 +42,9 @@ export const toolCategories = {
41
42
  getUserDatasetsList,
42
43
  getUserKeyValueStoresList,
43
44
  ],
45
+ dev: [
46
+ getHtmlSkeleton,
47
+ ],
44
48
  };
45
49
  export const toolCategoriesEnabledByDefault = [
46
50
  'actors',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,YAAY,EAAE;QACV,OAAO;KACV;IACD,MAAM,EAAE;QACJ,qBAAqB;QACrB,YAAY;QACZ,SAAS;KACZ;IACD,IAAI,EAAE;QACF,mBAAmB;QACnB,kBAAkB;KACrB;IACD,IAAI,EAAE;QACF,WAAW;QACX,eAAe;QACf,cAAc;KACjB;IACD,OAAO,EAAE;QACL,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,oBAAoB;QACpB,sBAAsB;QACtB,mBAAmB;QACnB,yBAAyB;KAC5B;CACJ,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAmB;IAC1D,QAAQ;IACR,MAAM;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC,8BAA8B,CAAC,CAAC;AAEzF,4CAA4C;AAC5C,OAAO,EACH,gBAAgB,EAChB,mBAAmB,GACtB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,YAAY,EAAE;QACV,OAAO;KACV;IACD,MAAM,EAAE;QACJ,qBAAqB;QACrB,YAAY;QACZ,SAAS;KACZ;IACD,IAAI,EAAE;QACF,mBAAmB;QACnB,kBAAkB;KACrB;IACD,IAAI,EAAE;QACF,WAAW;QACX,eAAe;QACf,cAAc;KACjB;IACD,OAAO,EAAE;QACL,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,oBAAoB;QACpB,sBAAsB;QACtB,mBAAmB;QACnB,yBAAyB;KAC5B;IACD,GAAG,EAAE;QACD,eAAe;KAClB;CACJ,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAmB;IAC1D,QAAQ;IACR,MAAM;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,4BAA4B,CAAC,8BAA8B,CAAC,CAAC;AAEzF,4CAA4C;AAC5C,OAAO,EACH,gBAAgB,EAChB,mBAAmB,GACtB,CAAC"}