@apify/actors-mcp-server 0.4.5 → 0.4.9
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 +8 -0
- package/dist/actor/server.d.ts.map +1 -1
- package/dist/actor/server.js +7 -4
- package/dist/actor/server.js.map +1 -1
- package/dist/apify-client.d.ts +6 -1
- package/dist/apify-client.d.ts.map +1 -1
- package/dist/apify-client.js +18 -3
- package/dist/apify-client.js.map +1 -1
- package/dist/const.d.ts +16 -6
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +17 -6
- package/dist/const.js.map +1 -1
- package/dist/index-internals.d.ts +2 -1
- package/dist/index-internals.d.ts.map +1 -1
- package/dist/index-internals.js +2 -1
- package/dist/index-internals.js.map +1 -1
- package/dist/main.js +6 -4
- package/dist/main.js.map +1 -1
- package/dist/mcp/actors.d.ts +0 -1
- package/dist/mcp/actors.d.ts.map +1 -1
- package/dist/mcp/actors.js +2 -15
- package/dist/mcp/actors.js.map +1 -1
- package/dist/mcp/proxy.d.ts.map +1 -1
- package/dist/mcp/proxy.js +1 -2
- package/dist/mcp/proxy.js.map +1 -1
- package/dist/mcp/server.d.ts +14 -4
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +94 -22
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/utils.d.ts +2 -1
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +2 -2
- package/dist/mcp/utils.js.map +1 -1
- package/dist/stdio.js +6 -7
- package/dist/stdio.js.map +1 -1
- package/dist/tools/actor.d.ts +17 -11
- package/dist/tools/actor.d.ts.map +1 -1
- package/dist/tools/actor.js +126 -89
- package/dist/tools/actor.js.map +1 -1
- package/dist/tools/build.d.ts +2 -1
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +5 -6
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/dataset.d.ts.map +1 -1
- package/dist/tools/dataset.js +20 -56
- package/dist/tools/dataset.js.map +1 -1
- package/dist/tools/dataset_collection.d.ts.map +1 -1
- package/dist/tools/dataset_collection.js +1 -2
- package/dist/tools/dataset_collection.js.map +1 -1
- package/dist/tools/fetch-actor-details.d.ts.map +1 -1
- package/dist/tools/fetch-actor-details.js +3 -1
- package/dist/tools/fetch-actor-details.js.map +1 -1
- package/dist/tools/get-actor-output.d.ts +13 -0
- package/dist/tools/get-actor-output.d.ts.map +1 -0
- package/dist/tools/get-actor-output.js +132 -0
- package/dist/tools/get-actor-output.js.map +1 -0
- package/dist/tools/helpers.d.ts +1 -11
- package/dist/tools/helpers.d.ts.map +1 -1
- package/dist/tools/helpers.js +4 -77
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/key_value_store.d.ts.map +1 -1
- package/dist/tools/key_value_store.js +1 -2
- package/dist/tools/key_value_store.js.map +1 -1
- package/dist/tools/key_value_store_collection.d.ts.map +1 -1
- package/dist/tools/key_value_store_collection.js +1 -2
- package/dist/tools/key_value_store_collection.js.map +1 -1
- package/dist/tools/run.d.ts.map +1 -1
- package/dist/tools/run.js +1 -2
- package/dist/tools/run.js.map +1 -1
- package/dist/tools/run_collection.d.ts.map +1 -1
- package/dist/tools/run_collection.js +1 -2
- package/dist/tools/run_collection.js.map +1 -1
- package/dist/tools/store_collection.d.ts.map +1 -1
- package/dist/tools/store_collection.js +1 -2
- package/dist/tools/store_collection.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/actor-details.d.ts +2 -1
- package/dist/utils/actor-details.d.ts.map +1 -1
- package/dist/utils/actor-details.js +3 -5
- package/dist/utils/actor-details.js.map +1 -1
- package/dist/utils/actor-response.d.ts +21 -0
- package/dist/utils/actor-response.d.ts.map +1 -0
- package/dist/utils/actor-response.js +53 -0
- package/dist/utils/actor-response.js.map +1 -0
- package/dist/utils/actor.d.ts +10 -1
- package/dist/utils/actor.d.ts.map +1 -1
- package/dist/utils/actor.js +39 -0
- package/dist/utils/actor.js.map +1 -1
- package/dist/utils/generic.d.ts +17 -1
- package/dist/utils/generic.d.ts.map +1 -1
- package/dist/utils/generic.js +21 -0
- package/dist/utils/generic.js.map +1 -1
- package/dist/utils/progress.d.ts +2 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +2 -4
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/schema-generation.d.ts +40 -0
- package/dist/utils/schema-generation.d.ts.map +1 -0
- package/dist/utils/schema-generation.js +62 -0
- package/dist/utils/schema-generation.js.map +1 -0
- package/dist/utils/tools-loader.d.ts +2 -1
- package/dist/utils/tools-loader.d.ts.map +1 -1
- package/dist/utils/tools-loader.js +13 -2
- package/dist/utils/tools-loader.js.map +1 -1
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -252,4 +252,11 @@ export type PromptBase = Prompt & {
|
|
|
252
252
|
render: (args: Record<string, string>) => string;
|
|
253
253
|
};
|
|
254
254
|
export type ActorInputSchemaProperties = Record<string, ISchemaProperties>;
|
|
255
|
+
export type DatasetItem = Record<number | string, unknown>;
|
|
256
|
+
/**
|
|
257
|
+
* Apify token type.
|
|
258
|
+
*
|
|
259
|
+
* Can be null or undefined in case of Skyfire requests.
|
|
260
|
+
*/
|
|
261
|
+
export type ApifyToken = string | null | undefined;
|
|
255
262
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Actor, Build } from 'apify-client';
|
|
2
|
+
import type { ApifyClient } from '../apify-client.js';
|
|
2
3
|
import type { IActorInputSchema } from '../types.js';
|
|
3
4
|
export interface ActorDetailsResult {
|
|
4
5
|
actorInfo: Actor;
|
|
@@ -7,5 +8,5 @@ export interface ActorDetailsResult {
|
|
|
7
8
|
inputSchema: IActorInputSchema;
|
|
8
9
|
readme: string;
|
|
9
10
|
}
|
|
10
|
-
export declare function fetchActorDetails(
|
|
11
|
+
export declare function fetchActorDetails(apifyClient: ApifyClient, actorName: string): Promise<ActorDetailsResult | null>;
|
|
11
12
|
//# sourceMappingURL=actor-details.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor-details.d.ts","sourceRoot":"","sources":["../../src/utils/actor-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"actor-details.d.ts","sourceRoot":"","sources":["../../src/utils/actor-details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAoBvH"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { ApifyClient } from '../apify-client.js';
|
|
2
1
|
import { filterSchemaProperties, shortenProperties } from '../tools/utils.js';
|
|
3
2
|
import { formatActorToActorCard } from './actor-card.js';
|
|
4
|
-
export async function fetchActorDetails(
|
|
5
|
-
const client = new ApifyClient({ token: apifyToken });
|
|
3
|
+
export async function fetchActorDetails(apifyClient, actorName) {
|
|
6
4
|
const [actorInfo, buildInfo] = await Promise.all([
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
apifyClient.actor(actorName).get(),
|
|
6
|
+
apifyClient.actor(actorName).defaultBuild().then(async (build) => build.get()),
|
|
9
7
|
]);
|
|
10
8
|
if (!actorInfo || !buildInfo || !buildInfo.actorDefinition)
|
|
11
9
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor-details.js","sourceRoot":"","sources":["../../src/utils/actor-details.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actor-details.js","sourceRoot":"","sources":["../../src/utils/actor-details.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAWzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAwB,EAAE,SAAiB;IAC/E,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAA2C,MAAM,OAAO,CAAC,GAAG,CAAC;QACrF,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE;QAClC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;KACjF,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI;QACpD,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACjB,CAAsB,CAAC;IACxB,WAAW,CAAC,UAAU,GAAG,sBAAsB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACxE,WAAW,CAAC,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO;QACH,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,MAAM,IAAI,qBAAqB;KACpE,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CallActorGetDatasetResult } from '../tools/actor';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the response content for Actor tool calls.
|
|
4
|
+
* Includes Actor run metadata, output schema, and a preview of output items.
|
|
5
|
+
*
|
|
6
|
+
* The response starts with a preview of Actor output items, if available.
|
|
7
|
+
* This must come first. Metadata and instructions for the LLM are provided last.
|
|
8
|
+
* The LLM may ignore metadata and instructions if it is not at the end of the response.
|
|
9
|
+
*
|
|
10
|
+
* If the preview is limited and does not show all items, the response informs the LLM.
|
|
11
|
+
* This is important because the LLM may assume it has all data and hallucinate missing items.
|
|
12
|
+
*
|
|
13
|
+
* @param actorName - The name of the actor.
|
|
14
|
+
* @param result - The result from callActorGetDataset.
|
|
15
|
+
* @returns The content array for the tool response.
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildActorResponseContent(actorName: string, result: CallActorGetDatasetResult): ({
|
|
18
|
+
type: 'text';
|
|
19
|
+
text: string;
|
|
20
|
+
})[];
|
|
21
|
+
//# sourceMappingURL=actor-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-response.d.ts","sourceRoot":"","sources":["../../src/utils/actor-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,yBAAyB,GAClC,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAwCpC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds the response content for Actor tool calls.
|
|
3
|
+
* Includes Actor run metadata, output schema, and a preview of output items.
|
|
4
|
+
*
|
|
5
|
+
* The response starts with a preview of Actor output items, if available.
|
|
6
|
+
* This must come first. Metadata and instructions for the LLM are provided last.
|
|
7
|
+
* The LLM may ignore metadata and instructions if it is not at the end of the response.
|
|
8
|
+
*
|
|
9
|
+
* If the preview is limited and does not show all items, the response informs the LLM.
|
|
10
|
+
* This is important because the LLM may assume it has all data and hallucinate missing items.
|
|
11
|
+
*
|
|
12
|
+
* @param actorName - The name of the actor.
|
|
13
|
+
* @param result - The result from callActorGetDataset.
|
|
14
|
+
* @returns The content array for the tool response.
|
|
15
|
+
*/
|
|
16
|
+
export function buildActorResponseContent(actorName, result) {
|
|
17
|
+
const { runId, datasetId, itemCount, schema } = result;
|
|
18
|
+
// Extract item schema if schema is an array
|
|
19
|
+
let displaySchema = schema;
|
|
20
|
+
if (schema && schema.type === 'array' && typeof schema.items === 'object' && schema.items !== null) {
|
|
21
|
+
displaySchema = schema.items;
|
|
22
|
+
}
|
|
23
|
+
// Construct text content
|
|
24
|
+
const textContent = `Actor "${actorName}" completed successfully!
|
|
25
|
+
|
|
26
|
+
Results summary:
|
|
27
|
+
• Run ID: ${runId}
|
|
28
|
+
• Dataset ID: ${datasetId}
|
|
29
|
+
• Total items: ${itemCount}
|
|
30
|
+
|
|
31
|
+
Actor output data schema:
|
|
32
|
+
* You can use this schema to understand the structure of the output data and, for example, retrieve specific fields based on your current task.
|
|
33
|
+
\`\`\`json
|
|
34
|
+
${JSON.stringify(displaySchema, null, 2)}
|
|
35
|
+
\`\`\`
|
|
36
|
+
|
|
37
|
+
Above this text block is a preview of the Actor output containing ${result.previewItems.length} item(s).${itemCount !== result.previewItems.length ? ` You have access only to a limited preview of the Actor output. Do not present this as the full output, as you have only ${result.previewItems.length} item(s) available instead of the full ${itemCount} item(s). Be aware of this and inform users about the currently loaded count and the total available output items count.` : ''}
|
|
38
|
+
|
|
39
|
+
If you need to retrieve additional data, use the "get-actor-output" tool with: datasetId: "${datasetId}". Be sure to limit the number of results when using the "get-actor-output" tool, since you never know how large the items may be, and they might exceed the output limits.
|
|
40
|
+
`;
|
|
41
|
+
const itemsPreviewText = result.previewItems.length > 0
|
|
42
|
+
? JSON.stringify(result.previewItems)
|
|
43
|
+
: `No items available for preview—either the Actor did not return any items or they are too large for preview. In this case, use the "get-actor-output" tool.`;
|
|
44
|
+
// Build content array
|
|
45
|
+
return [
|
|
46
|
+
{ type: 'text', text: itemsPreviewText },
|
|
47
|
+
/**
|
|
48
|
+
* The metadata and instructions text must be at the end otherwise the LLM does not acknowledge it.
|
|
49
|
+
*/
|
|
50
|
+
{ type: 'text', text: textContent },
|
|
51
|
+
];
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=actor-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-response.js","sourceRoot":"","sources":["../../src/utils/actor-response.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,yBAAyB,CACrC,SAAiB,EACjB,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEvD,4CAA4C;IAC5C,IAAI,aAAa,GAAG,MAAM,CAAC;IAC3B,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACjG,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,yBAAyB;IACzB,MAAM,WAAW,GAAG,UAAU,SAAS;;;YAG/B,KAAK;gBACD,SAAS;iBACR,SAAS;;;;;EAKxB,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;;;oEAG4B,MAAM,CAAC,YAAY,CAAC,MAAM,YAAY,SAAS,KAAK,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,4HAA4H,MAAM,CAAC,YAAY,CAAC,MAAM,0CAA0C,SAAS,0HAA0H,CAAC,CAAC,CAAC,EAAE;;6FAEhY,SAAS;CACrG,CAAC;IAEE,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,4JAA4J,CAAC;IAEnK,sBAAsB;IACtB,OAAO;QACH,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;QACxC;;WAEG;QACH,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;KACtC,CAAC;AACN,CAAC"}
|
package/dist/utils/actor.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import type { ActorDefinitionStorage } from '../types.js';
|
|
1
|
+
import type { ActorDefinitionStorage, DatasetItem } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Returns an array of all field names mentioned in the display.properties
|
|
4
4
|
* of all views in the given ActorDefinitionStorage object.
|
|
5
5
|
*/
|
|
6
6
|
export declare function getActorDefinitionStorageFieldNames(storage: ActorDefinitionStorage | object): string[];
|
|
7
|
+
/**
|
|
8
|
+
* Ensures the Actor output items are within the character limit.
|
|
9
|
+
*
|
|
10
|
+
* First checks if all items fit into the limit, then tries only the important fields and as a last resort
|
|
11
|
+
* starts removing items until within the limit. In worst scenario return empty array.
|
|
12
|
+
*
|
|
13
|
+
* This is primarily used to ensure the tool output does not exceed the LLM context length or tool output limit.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ensureOutputWithinCharLimit(items: DatasetItem[], importantFields: string[], charLimit: number): DatasetItem[];
|
|
7
16
|
//# sourceMappingURL=actor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/utils/actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/utils/actor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGvE;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,GAAG,MAAM,EAAE,CAiBtG;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CA+B7H"}
|
package/dist/utils/actor.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getValuesByDotKeys } from './generic.js';
|
|
1
2
|
/**
|
|
2
3
|
* Returns an array of all field names mentioned in the display.properties
|
|
3
4
|
* of all views in the given ActorDefinitionStorage object.
|
|
@@ -21,4 +22,42 @@ export function getActorDefinitionStorageFieldNames(storage) {
|
|
|
21
22
|
}
|
|
22
23
|
return Array.from(fieldSet);
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Ensures the Actor output items are within the character limit.
|
|
27
|
+
*
|
|
28
|
+
* First checks if all items fit into the limit, then tries only the important fields and as a last resort
|
|
29
|
+
* starts removing items until within the limit. In worst scenario return empty array.
|
|
30
|
+
*
|
|
31
|
+
* This is primarily used to ensure the tool output does not exceed the LLM context length or tool output limit.
|
|
32
|
+
*/
|
|
33
|
+
export function ensureOutputWithinCharLimit(items, importantFields, charLimit) {
|
|
34
|
+
// Check if all items fit into the limit
|
|
35
|
+
const allItemsString = JSON.stringify(items);
|
|
36
|
+
if (allItemsString.length <= charLimit) {
|
|
37
|
+
return items;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Items used for the final fallback - removing items until within the limit.
|
|
41
|
+
* If important fields are defined, use only those fields for that fallback step.
|
|
42
|
+
*/
|
|
43
|
+
let sourceItems = items;
|
|
44
|
+
// Try only the important fields
|
|
45
|
+
if (importantFields.length > 0) {
|
|
46
|
+
const importantItems = items.map((item) => getValuesByDotKeys(item, importantFields));
|
|
47
|
+
const importantItemsString = JSON.stringify(importantItems);
|
|
48
|
+
if (importantItemsString.length <= charLimit) {
|
|
49
|
+
return importantItems;
|
|
50
|
+
}
|
|
51
|
+
sourceItems = importantItems;
|
|
52
|
+
}
|
|
53
|
+
// Start removing items until within the limit
|
|
54
|
+
const result = [];
|
|
55
|
+
for (const item of sourceItems) {
|
|
56
|
+
if (JSON.stringify(result.concat(item)).length > charLimit) {
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
result.push(item);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
24
63
|
//# sourceMappingURL=actor.js.map
|
package/dist/utils/actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/utils/actor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/utils/actor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAC,OAAwC;IACxF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACpF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,kCAAkC;YAClC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,qCAAqC;YACrC,IAAI,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAoB,EAAE,eAAyB,EAAE,SAAiB;IAC1G,wCAAwC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,cAAc,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,gCAAgC;IAChC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QACtF,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,oBAAoB,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC3C,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,WAAW,GAAG,cAAc,CAAC;IACjC,CAAC;IAED,8CAA8C;IAC9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YACzD,MAAM;QACV,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/dist/utils/generic.d.ts
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
* Recursively gets the value in a nested object for each key in the keys array.
|
|
3
3
|
* Each key can be a dot-separated path (e.g. 'a.b.c').
|
|
4
4
|
* Returns an object mapping each key to its resolved value (or undefined if not found).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const obj = { a: { b: { c: 42 } }, nested: { d: 100 } };
|
|
8
|
+
* const value = getValuesByDotKeys(obj, ['a.b.c', 'a.b.d', 'nested']);
|
|
9
|
+
* value; // { 'a.b.c': 42, 'a.b.d': undefined, 'nested': { d: 100 } }
|
|
5
10
|
*/
|
|
6
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Parses a comma-separated string into an array of trimmed strings.
|
|
13
|
+
* Empty strings are filtered out after trimming.
|
|
14
|
+
*
|
|
15
|
+
* @param input - The comma-separated string to parse. If undefined, returns an empty array.
|
|
16
|
+
* @returns An array of trimmed, non-empty strings.
|
|
17
|
+
* @example
|
|
18
|
+
* parseCommaSeparatedList("a, b, c"); // ["a", "b", "c"]
|
|
19
|
+
* parseCommaSeparatedList("a, , b"); // ["a", "b"]
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseCommaSeparatedList(input?: string): string[];
|
|
22
|
+
export declare function getValuesByDotKeys(obj: Record<string, unknown>, keys: string[]): Record<string, unknown>;
|
|
7
23
|
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/utils/generic.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/utils/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAKhE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBxG"}
|
package/dist/utils/generic.js
CHANGED
|
@@ -2,7 +2,28 @@
|
|
|
2
2
|
* Recursively gets the value in a nested object for each key in the keys array.
|
|
3
3
|
* Each key can be a dot-separated path (e.g. 'a.b.c').
|
|
4
4
|
* Returns an object mapping each key to its resolved value (or undefined if not found).
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* const obj = { a: { b: { c: 42 } }, nested: { d: 100 } };
|
|
8
|
+
* const value = getValuesByDotKeys(obj, ['a.b.c', 'a.b.d', 'nested']);
|
|
9
|
+
* value; // { 'a.b.c': 42, 'a.b.d': undefined, 'nested': { d: 100 } }
|
|
5
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* Parses a comma-separated string into an array of trimmed strings.
|
|
13
|
+
* Empty strings are filtered out after trimming.
|
|
14
|
+
*
|
|
15
|
+
* @param input - The comma-separated string to parse. If undefined, returns an empty array.
|
|
16
|
+
* @returns An array of trimmed, non-empty strings.
|
|
17
|
+
* @example
|
|
18
|
+
* parseCommaSeparatedList("a, b, c"); // ["a", "b", "c"]
|
|
19
|
+
* parseCommaSeparatedList("a, , b"); // ["a", "b"]
|
|
20
|
+
*/
|
|
21
|
+
export function parseCommaSeparatedList(input) {
|
|
22
|
+
if (!input) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return input.split(',').map((s) => s.trim()).filter((s) => s.length > 0);
|
|
26
|
+
}
|
|
6
27
|
export function getValuesByDotKeys(obj, keys) {
|
|
7
28
|
const result = {};
|
|
8
29
|
for (const key of keys) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/utils/generic.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/utils/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAA4B,EAAE,IAAc;IAC3E,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,GAAY,GAAG,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,IACI,OAAO,KAAK,IAAI;mBACb,OAAO,OAAO,KAAK,QAAQ;mBAC3B,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3D,CAAC;gBACC,qDAAqD;gBACrD,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,SAAS,CAAC;gBACpB,MAAM;YACV,CAAC;QACL,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/dist/utils/progress.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ProgressNotification } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { ApifyClient } from '../apify-client.js';
|
|
2
3
|
export declare class ProgressTracker {
|
|
3
4
|
private progressToken;
|
|
4
5
|
private sendNotification;
|
|
@@ -6,7 +7,7 @@ export declare class ProgressTracker {
|
|
|
6
7
|
private intervalId?;
|
|
7
8
|
constructor(progressToken: string | number, sendNotification: (notification: ProgressNotification) => Promise<void>);
|
|
8
9
|
updateProgress(message?: string): Promise<void>;
|
|
9
|
-
startActorRunUpdates(runId: string,
|
|
10
|
+
startActorRunUpdates(runId: string, apifyClient: ApifyClient, actorName: string): void;
|
|
10
11
|
stop(): void;
|
|
11
12
|
}
|
|
12
13
|
export declare function createProgressTracker(progressToken: string | number | undefined, sendNotification: ((notification: ProgressNotification) => Promise<void>) | undefined): ProgressTracker | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,eAAe;IACxB,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,gBAAgB,CAAwD;IAChF,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAiB;gBAGhC,aAAa,EAAE,MAAM,GAAG,MAAM,EAC9B,gBAAgB,EAAE,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC;IAMrE,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkCtF,IAAI,IAAI,IAAI;CAMf;AAED,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAC1C,gBAAgB,EAAE,CAAC,CAAC,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GACtF,eAAe,GAAG,IAAI,CAMxB"}
|
package/dist/utils/progress.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ApifyClient } from '../apify-client.js';
|
|
2
1
|
import { PROGRESS_NOTIFICATION_INTERVAL_MS } from '../const.js';
|
|
3
2
|
export class ProgressTracker {
|
|
4
3
|
constructor(progressToken, sendNotification) {
|
|
@@ -46,14 +45,13 @@ export class ProgressTracker {
|
|
|
46
45
|
// Silent fail - don't break execution
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
|
-
startActorRunUpdates(runId,
|
|
48
|
+
startActorRunUpdates(runId, apifyClient, actorName) {
|
|
50
49
|
this.stop();
|
|
51
|
-
const client = new ApifyClient({ token: apifyToken });
|
|
52
50
|
let lastStatus = '';
|
|
53
51
|
let lastStatusMessage = '';
|
|
54
52
|
this.intervalId = setInterval(async () => {
|
|
55
53
|
try {
|
|
56
|
-
const run = await
|
|
54
|
+
const run = await apifyClient.run(runId).get();
|
|
57
55
|
if (!run)
|
|
58
56
|
return;
|
|
59
57
|
const { status, statusMessage } = run;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iCAAiC,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,OAAO,eAAe;IAMxB,YACI,aAA8B,EAC9B,gBAAuE;QAPnE;;;;;WAA+B;QAC/B;;;;;WAAwE;QACxE;;;;mBAAkB,CAAC;WAAC;QACpB;;;;;WAA4B;QAMhC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB;QACjC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QAE1B,IAAI,CAAC;YACD,MAAM,YAAY,GAAyB;gBACvC,MAAM,EAAE,wBAAiC;gBACzC,MAAM,EAAE;oBACJ,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,QAAQ,EAAE,IAAI,CAAC,eAAe;oBAC9B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;iBAC9B;aACJ,CAAC;YAEF,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACL,sCAAsC;QAC1C,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,KAAa,EAAE,WAAwB,EAAE,SAAiB;QAC3E,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAE3B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACrC,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC/C,IAAI,CAAC,GAAG;oBAAE,OAAO;gBAEjB,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC;gBAEtC,4DAA4D;gBAC5D,IAAI,MAAM,KAAK,UAAU,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;oBAC/D,UAAU,GAAG,MAAM,CAAC;oBACpB,iBAAiB,GAAG,aAAa,IAAI,EAAE,CAAC;oBAExC,MAAM,OAAO,GAAG,aAAa;wBACzB,CAAC,CAAC,GAAG,SAAS,KAAK,aAAa,EAAE;wBAClC,CAAC,CAAC,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC;oBAEhC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBAEnC,iCAAiC;oBACjC,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;wBAClG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,iCAAiC;YACrC,CAAC;QACL,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAChC,CAAC;IACL,CAAC;CACJ;AAED,MAAM,UAAU,qBAAqB,CACjC,aAA0C,EAC1C,gBAAqF;IAErF,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,eAAe,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal JSON Schema typings for array/object schemas used in generateSchemaFromItems
|
|
3
|
+
*/
|
|
4
|
+
export type JsonSchemaProperty = {
|
|
5
|
+
type: 'string' | 'integer' | 'number' | 'boolean' | 'object' | 'array' | 'null';
|
|
6
|
+
properties?: Record<string, JsonSchemaProperty>;
|
|
7
|
+
items?: JsonSchemaProperty;
|
|
8
|
+
};
|
|
9
|
+
export interface JsonSchemaObject {
|
|
10
|
+
type: 'object';
|
|
11
|
+
properties: Record<string, JsonSchemaProperty>;
|
|
12
|
+
}
|
|
13
|
+
export interface JsonSchemaArray {
|
|
14
|
+
type: 'array';
|
|
15
|
+
items: JsonSchemaObject | JsonSchemaProperty;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for schema generation
|
|
19
|
+
*/
|
|
20
|
+
export interface SchemaGenerationOptions {
|
|
21
|
+
/** Maximum number of items to use for schema generation. Default is 5. */
|
|
22
|
+
limit?: number;
|
|
23
|
+
/** If true, uses only non-empty items and skips hidden fields. Default is true. */
|
|
24
|
+
clean?: boolean;
|
|
25
|
+
/** Strategy for handling arrays. "first" uses first item as template, "all" merges all items. Default is "all". */
|
|
26
|
+
arrayMode?: 'first' | 'all';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Function to recursively remove empty arrays from an object
|
|
30
|
+
*/
|
|
31
|
+
export declare function removeEmptyArrays(obj: unknown): unknown;
|
|
32
|
+
/**
|
|
33
|
+
* Generates a JSON schema from dataset items with configurable options
|
|
34
|
+
*
|
|
35
|
+
* @param datasetItems - Array of dataset items to generate schema from
|
|
36
|
+
* @param options - Configuration options for schema generation
|
|
37
|
+
* @returns JSON schema object or null if generation fails
|
|
38
|
+
*/
|
|
39
|
+
export declare function generateSchemaFromItems(datasetItems: unknown[], options?: SchemaGenerationOptions): JsonSchemaArray | null;
|
|
40
|
+
//# sourceMappingURL=schema-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generation.d.ts","sourceRoot":"","sources":["../../src/utils/schema-generation.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mHAAmH;IACnH,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAuBvD;AAGD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,OAAO,EAAE,EACvB,OAAO,GAAE,uBAA4B,GACtC,eAAe,GAAG,IAAI,CAoCxB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import toJsonSchema from 'to-json-schema';
|
|
2
|
+
/**
|
|
3
|
+
* Function to recursively remove empty arrays from an object
|
|
4
|
+
*/
|
|
5
|
+
export function removeEmptyArrays(obj) {
|
|
6
|
+
if (Array.isArray(obj)) {
|
|
7
|
+
// If the item is an array, recursively call removeEmptyArrays on each element.
|
|
8
|
+
return obj.map((item) => removeEmptyArrays(item));
|
|
9
|
+
}
|
|
10
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
11
|
+
// Return primitives and null values as is.
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
// Use reduce to build a new object, excluding keys with empty arrays.
|
|
15
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
16
|
+
const processedValue = removeEmptyArrays(value);
|
|
17
|
+
// Exclude the key if the processed value is an empty array.
|
|
18
|
+
if (Array.isArray(processedValue) && processedValue.length === 0) {
|
|
19
|
+
return acc;
|
|
20
|
+
}
|
|
21
|
+
acc[key] = processedValue;
|
|
22
|
+
return acc;
|
|
23
|
+
}, {});
|
|
24
|
+
}
|
|
25
|
+
// TODO: write unit tests for this.
|
|
26
|
+
/**
|
|
27
|
+
* Generates a JSON schema from dataset items with configurable options
|
|
28
|
+
*
|
|
29
|
+
* @param datasetItems - Array of dataset items to generate schema from
|
|
30
|
+
* @param options - Configuration options for schema generation
|
|
31
|
+
* @returns JSON schema object or null if generation fails
|
|
32
|
+
*/
|
|
33
|
+
export function generateSchemaFromItems(datasetItems, options = {}) {
|
|
34
|
+
const { limit = 5, clean = true, arrayMode = 'all', } = options;
|
|
35
|
+
// Limit the number of items used for schema generation
|
|
36
|
+
const itemsToUse = datasetItems.slice(0, limit);
|
|
37
|
+
if (itemsToUse.length === 0) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
// Clean the dataset items by removing empty arrays if requested
|
|
41
|
+
const processedItems = clean
|
|
42
|
+
? itemsToUse.map((item) => removeEmptyArrays(item))
|
|
43
|
+
: itemsToUse;
|
|
44
|
+
// Try to generate schema with full options first
|
|
45
|
+
try {
|
|
46
|
+
const schema = toJsonSchema(processedItems, {
|
|
47
|
+
arrays: { mode: arrayMode },
|
|
48
|
+
});
|
|
49
|
+
return schema;
|
|
50
|
+
}
|
|
51
|
+
catch { /* ignore */ }
|
|
52
|
+
try {
|
|
53
|
+
const fallbackSchema = toJsonSchema(processedItems, {
|
|
54
|
+
arrays: { mode: 'first' },
|
|
55
|
+
});
|
|
56
|
+
return fallbackSchema;
|
|
57
|
+
}
|
|
58
|
+
catch { /* ignore */ }
|
|
59
|
+
// If all attempts fail, return null
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=schema-generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generation.js","sourceRoot":"","sources":["../../src/utils/schema-generation.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAiC1C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,+EAA+E;QAC/E,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC1C,2CAA2C;QAC3C,OAAO,GAAG,CAAC;IACf,CAAC;IAED,sEAAsE;IACtE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpD,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEhD,4DAA4D;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,CAAC;QACf,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAA6B,CAAC,CAAC;AACtC,CAAC;AAED,mCAAmC;AACnC;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACnC,YAAuB,EACvB,UAAmC,EAAE;IAErC,MAAM,EACF,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,IAAI,EACZ,SAAS,GAAG,KAAK,GACpB,GAAG,OAAO,CAAC;IAEZ,uDAAuD;IACvD,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEhD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gEAAgE;IAChE,MAAM,cAAc,GAAG,KAAK;QACxB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,UAAU,CAAC;IAEjB,iDAAiD;IACjD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,EAAE;YACxC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC9B,CAAoB,CAAC;QACtB,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,IAAI,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,EAAE;YAChD,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;SAC5B,CAAoB,CAAC;QACtB,OAAO,cAAc,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAExB,oCAAoC;IACpC,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared logic for loading tools based on Input type.
|
|
3
3
|
* This eliminates duplication between stdio.ts and processParamsGetTools.
|
|
4
4
|
*/
|
|
5
|
+
import type { ApifyClient } from 'apify';
|
|
5
6
|
import type { Input, ToolEntry } from '../types.js';
|
|
6
7
|
/**
|
|
7
8
|
* Load tools based on the provided Input object.
|
|
@@ -11,5 +12,5 @@ import type { Input, ToolEntry } from '../types.js';
|
|
|
11
12
|
* @param apifyToken The Apify API token
|
|
12
13
|
* @returns An array of tool entries
|
|
13
14
|
*/
|
|
14
|
-
export declare function loadToolsFromInput(input: Input,
|
|
15
|
+
export declare function loadToolsFromInput(input: Input, apifyClient: ApifyClient): Promise<ToolEntry[]>;
|
|
15
16
|
//# sourceMappingURL=tools-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-loader.d.ts","sourceRoot":"","sources":["../../src/utils/tools-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"tools-loader.d.ts","sourceRoot":"","sources":["../../src/utils/tools-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AASzC,OAAO,KAAK,EAAE,KAAK,EAAgB,SAAS,EAAE,MAAM,aAAa,CAAC;AAelE;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAsGtB"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import log from '@apify/log';
|
|
6
6
|
import { defaults } from '../const.js';
|
|
7
7
|
import { callActor } from '../tools/actor.js';
|
|
8
|
+
import { getActorOutput } from '../tools/get-actor-output.js';
|
|
8
9
|
import { addTool } from '../tools/helpers.js';
|
|
9
10
|
import { getActorsAsTools, toolCategories, toolCategoriesEnabledByDefault } from '../tools/index.js';
|
|
10
11
|
import { getExpectedToolsByCategories } from './tools.js';
|
|
@@ -25,7 +26,7 @@ function getInternalToolByNameMap() {
|
|
|
25
26
|
* @param apifyToken The Apify API token
|
|
26
27
|
* @returns An array of tool entries
|
|
27
28
|
*/
|
|
28
|
-
export async function loadToolsFromInput(input,
|
|
29
|
+
export async function loadToolsFromInput(input, apifyClient) {
|
|
29
30
|
// Helpers for readability
|
|
30
31
|
const normalizeSelectors = (value) => {
|
|
31
32
|
if (value === undefined)
|
|
@@ -109,9 +110,19 @@ export async function loadToolsFromInput(input, apifyToken) {
|
|
|
109
110
|
}
|
|
110
111
|
// Actor tools (if any)
|
|
111
112
|
if (actorNamesToLoad.length > 0) {
|
|
112
|
-
const actorTools = await getActorsAsTools(actorNamesToLoad,
|
|
113
|
+
const actorTools = await getActorsAsTools(actorNamesToLoad, apifyClient);
|
|
113
114
|
result.push(...actorTools);
|
|
114
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* If there is any tool that in some way, even indirectly (like add-actor), allows calling
|
|
118
|
+
* Actor, then we need to ensure the get-actor-output tool is available.
|
|
119
|
+
*/
|
|
120
|
+
const hasCallActor = result.some((entry) => entry.tool.name === 'call-actor');
|
|
121
|
+
const hasActorTools = result.some((entry) => entry.type === 'actor');
|
|
122
|
+
const hasAddActorTool = result.some((entry) => entry.tool.name === 'add-actor');
|
|
123
|
+
if (hasCallActor || hasActorTools || hasAddActorTool) {
|
|
124
|
+
result.push(getActorOutput);
|
|
125
|
+
}
|
|
115
126
|
// De-duplicate by tool name for safety
|
|
116
127
|
const seen = new Set();
|
|
117
128
|
return result.filter((entry) => !seen.has(entry.tool.name) && seen.add(entry.tool.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-loader.js","sourceRoot":"","sources":["../../src/utils/tools-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"tools-loader.js","sourceRoot":"","sources":["../../src/utils/tools-loader.ts"],"names":[],"mappings":"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"}
|