@apify/actors-mcp-server 0.1.20 → 0.1.22-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -25
- package/dist/actor/const.d.ts +15 -0
- package/dist/actor/const.d.ts.map +1 -0
- package/dist/actor/const.js +20 -0
- package/dist/actor/const.js.map +1 -0
- package/dist/{input.d.ts → actor/input.d.ts} +1 -1
- package/dist/actor/input.d.ts.map +1 -0
- package/dist/{input.js → actor/input.js} +5 -1
- package/dist/actor/input.js.map +1 -0
- package/dist/actor/server.d.ts +4 -0
- package/dist/actor/server.d.ts.map +1 -0
- package/dist/actor/server.js +81 -0
- package/dist/actor/server.js.map +1 -0
- package/dist/actor/types.d.ts +30 -0
- package/dist/actor/types.d.ts.map +1 -0
- package/dist/actor/types.js +2 -0
- package/dist/actor/types.js.map +1 -0
- package/dist/actor/utils.d.ts +11 -0
- package/dist/actor/utils.d.ts.map +1 -0
- package/dist/actor/utils.js +50 -0
- package/dist/actor/utils.js.map +1 -0
- package/dist/const.d.ts +10 -20
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +17 -27
- package/dist/const.js.map +1 -1
- package/dist/examples/clientSse.d.ts +10 -1
- package/dist/examples/clientSse.d.ts.map +1 -1
- package/dist/examples/clientSse.js +7 -4
- package/dist/examples/clientSse.js.map +1 -1
- package/dist/examples/clientStdio.js +2 -2
- package/dist/examples/clientStdio.js.map +1 -1
- package/dist/examples/clientStdioChat.js +1 -1
- package/dist/index.d.ts +2 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -42
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +21 -118
- package/dist/main.js.map +1 -1
- package/dist/mcp-server.d.ts +39 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +155 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/stdio.d.ts +15 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +46 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/actor.d.ts +37 -0
- package/dist/tools/actor.d.ts.map +1 -0
- package/dist/tools/actor.js +89 -0
- package/dist/tools/actor.js.map +1 -0
- package/dist/tools/build.d.ts +12 -0
- package/dist/tools/build.d.ts.map +1 -0
- package/dist/tools/build.js +120 -0
- package/dist/tools/build.js.map +1 -0
- package/dist/tools/helpers.d.ts +19 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +62 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/mcp-apify-client.d.ts +6 -0
- package/dist/tools/mcp-apify-client.d.ts.map +1 -0
- package/dist/tools/mcp-apify-client.js +22 -0
- package/dist/tools/mcp-apify-client.js.map +1 -0
- package/dist/tools/store_collection.d.ts +21 -0
- package/dist/tools/store_collection.d.ts.map +1 -0
- package/dist/tools/store_collection.js +80 -0
- package/dist/tools/store_collection.js.map +1 -0
- package/dist/tools/utils.d.ts +77 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/{actors.js → tools/utils.js} +112 -241
- package/dist/tools/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +70 -9
- package/dist/types.d.ts.map +1 -1
- package/package.json +17 -14
- package/dist/actors.d.ts +0 -74
- package/dist/actors.d.ts.map +0 -1
- package/dist/actors.js.map +0 -1
- package/dist/input.d.ts.map +0 -1
- package/dist/input.js.map +0 -1
- package/dist/logger.d.ts +0 -3
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -4
- package/dist/logger.js.map +0 -1
- package/dist/server.d.ts +0 -43
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -178
- package/dist/server.js.map +0 -1
- package/dist/tools.d.ts +0 -46
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -128
- package/dist/tools.js.map +0 -1
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ApifyClient } from 'apify-client';
|
|
3
|
-
import { ACTOR_ADDITIONAL_INSTRUCTIONS, defaults, MAX_DESCRIPTION_LENGTH, ACTOR_README_MAX_LENGTH, ACTOR_ENUM_MAX_LENGTH } from './const.js';
|
|
4
|
-
import { log } from './logger.js';
|
|
1
|
+
import { ACTOR_ENUM_MAX_LENGTH, ACTOR_MAX_DESCRIPTION_LENGTH } from '../const.js';
|
|
5
2
|
export function actorNameToToolName(actorName) {
|
|
6
3
|
return actorName
|
|
7
4
|
.replace(/\//g, '-slash-')
|
|
@@ -9,160 +6,58 @@ export function actorNameToToolName(actorName) {
|
|
|
9
6
|
.slice(0, 64);
|
|
10
7
|
}
|
|
11
8
|
/**
|
|
12
|
-
*
|
|
13
|
-
* First, fetch the actor details to get the default build tag and buildId.
|
|
14
|
-
* Then, fetch the build details and return actorName, description, and input schema.
|
|
15
|
-
* @param {string} actorIdOrName - Actor ID or Actor full name.
|
|
16
|
-
* @param {number} limit - Truncate the README to this limit.
|
|
17
|
-
* @returns {Promise<ActorDefinitionWithDesc | null>} - The actor definition with description or null if not found.
|
|
18
|
-
*/
|
|
19
|
-
export async function getActorDefinition(actorIdOrName, limit = ACTOR_README_MAX_LENGTH) {
|
|
20
|
-
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
|
|
21
|
-
const actorClient = client.actor(actorIdOrName);
|
|
22
|
-
try {
|
|
23
|
-
// Fetch actor details
|
|
24
|
-
const actor = await actorClient.get();
|
|
25
|
-
if (!actor) {
|
|
26
|
-
log.error(`Failed to fetch input schema for Actor: ${actorIdOrName}. Actor not found.`);
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
// fnesveda: The default build is not necessarily tagged, you can specify any build number as default build.
|
|
30
|
-
// There will be a new API endpoint to fetch a default build.
|
|
31
|
-
// For now, we'll use the tagged build, it will work for 90% of Actors. Later, we can update this.
|
|
32
|
-
const tag = actor.defaultRunOptions?.build || '';
|
|
33
|
-
const buildId = actor.taggedBuilds?.[tag]?.buildId || '';
|
|
34
|
-
if (!buildId) {
|
|
35
|
-
log.error(`Failed to fetch input schema for Actor: ${actorIdOrName}. Build ID not found.`);
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
// Fetch build details and return the input schema
|
|
39
|
-
const buildDetails = await client.build(buildId).get();
|
|
40
|
-
if (buildDetails?.actorDefinition) {
|
|
41
|
-
const actorDefinitions = buildDetails?.actorDefinition;
|
|
42
|
-
actorDefinitions.id = actor.id;
|
|
43
|
-
actorDefinitions.readme = truncateActorReadme(actorDefinitions.readme || '', limit);
|
|
44
|
-
actorDefinitions.description = actor.description || '';
|
|
45
|
-
actorDefinitions.actorFullName = `${actor.username}/${actor.name}`;
|
|
46
|
-
actorDefinitions.defaultRunOptions = actor.defaultRunOptions;
|
|
47
|
-
return pruneActorDefinition(actorDefinitions);
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
const errorMessage = `Failed to fetch input schema for Actor: ${actorIdOrName} with error ${error}.`;
|
|
53
|
-
log.error(errorMessage);
|
|
54
|
-
throw new Error(errorMessage);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function pruneActorDefinition(response) {
|
|
58
|
-
return {
|
|
59
|
-
id: response.id,
|
|
60
|
-
actorFullName: response.actorFullName || '',
|
|
61
|
-
buildTag: response?.buildTag || '',
|
|
62
|
-
readme: response?.readme || '',
|
|
63
|
-
input: response?.input && 'type' in response.input && 'properties' in response.input
|
|
64
|
-
? { ...response.input,
|
|
65
|
-
type: response.input.type,
|
|
66
|
-
properties: response.input.properties }
|
|
67
|
-
: undefined,
|
|
68
|
-
description: response.description,
|
|
69
|
-
defaultRunOptions: response.defaultRunOptions,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Helper function to shorten the enum list if it is too long.
|
|
74
|
-
*
|
|
75
|
-
* @param {string[]} enumList - The list of enum values to be shortened.
|
|
76
|
-
* @returns {string[] | undefined} - The shortened enum list or undefined if the list is too long.
|
|
77
|
-
*/
|
|
78
|
-
export function shortenEnum(enumList) {
|
|
79
|
-
let charCount = 0;
|
|
80
|
-
const resultEnumList = enumList.filter((enumValue) => {
|
|
81
|
-
charCount += enumValue.length;
|
|
82
|
-
return charCount <= ACTOR_ENUM_MAX_LENGTH;
|
|
83
|
-
});
|
|
84
|
-
return resultEnumList.length > 0 ? resultEnumList : undefined;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Shortens the description, enum, and items.enum properties of the schema properties.
|
|
88
|
-
* @param properties
|
|
89
|
-
*/
|
|
90
|
-
export function shortenProperties(properties) {
|
|
91
|
-
for (const property of Object.values(properties)) {
|
|
92
|
-
if (property.description.length > MAX_DESCRIPTION_LENGTH) {
|
|
93
|
-
property.description = `${property.description.slice(0, MAX_DESCRIPTION_LENGTH)}...`;
|
|
94
|
-
}
|
|
95
|
-
if (property.enum && property.enum?.length > 0) {
|
|
96
|
-
property.enum = shortenEnum(property.enum);
|
|
97
|
-
}
|
|
98
|
-
if (property.items?.enum && property.items.enum.length > 0) {
|
|
99
|
-
property.items.enum = shortenEnum(property.items.enum);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return properties;
|
|
103
|
-
}
|
|
104
|
-
/** Prune Actor README if it is too long
|
|
105
|
-
* If the README is too long
|
|
106
|
-
* - We keep the README as it is up to the limit.
|
|
107
|
-
* - After the limit, we keep heading only
|
|
108
|
-
* - We add a note that the README was truncated because it was too long.
|
|
109
|
-
*/
|
|
110
|
-
export function truncateActorReadme(readme, limit = ACTOR_README_MAX_LENGTH) {
|
|
111
|
-
if (readme.length <= limit) {
|
|
112
|
-
return readme;
|
|
113
|
-
}
|
|
114
|
-
const readmeFirst = readme.slice(0, limit);
|
|
115
|
-
const readmeRest = readme.slice(limit);
|
|
116
|
-
const lines = readmeRest.split('\n');
|
|
117
|
-
const prunedReadme = lines.filter((line) => line.startsWith('#'));
|
|
118
|
-
return `${readmeFirst}\n\nREADME was truncated because it was too long. Remaining headers:\n${prunedReadme.join(', ')}`;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Helps determine the type of items in an array schema property.
|
|
122
|
-
* Priority order: explicit type in items > prefill type > default value type > editor type.
|
|
123
|
-
*
|
|
124
|
-
* Based on JSON schema, the array needs a type, and most of the time Actor input schema does not have this, so we need to infer that.
|
|
125
|
-
*
|
|
126
|
-
*/
|
|
127
|
-
export function inferArrayItemType(property) {
|
|
128
|
-
return property.items?.type
|
|
129
|
-
|| (Array.isArray(property.prefill) && property.prefill.length > 0 && typeof property.prefill[0])
|
|
130
|
-
|| (Array.isArray(property.default) && property.default.length > 0 && typeof property.default[0])
|
|
131
|
-
|| (property.editor && getEditorItemType(property.editor))
|
|
132
|
-
|| null;
|
|
133
|
-
function getEditorItemType(editor) {
|
|
134
|
-
const editorTypeMap = {
|
|
135
|
-
requestListSources: 'object',
|
|
136
|
-
stringList: 'string',
|
|
137
|
-
json: 'object',
|
|
138
|
-
globs: 'object',
|
|
139
|
-
};
|
|
140
|
-
return editorTypeMap[editor] || null;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Add enum values as string to property descriptions.
|
|
9
|
+
* Builds nested properties for object types in the schema.
|
|
145
10
|
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
11
|
+
* Specifically handles special cases like proxy configuration and request list sources
|
|
12
|
+
* by adding predefined nested properties to these object types.
|
|
13
|
+
* This is necessary for the agent to correctly infer how to structure object inputs
|
|
14
|
+
* when passing arguments to the Actor.
|
|
148
15
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
16
|
+
* For proxy objects (type='object', editor='proxy'), adds 'useApifyProxy' property.
|
|
17
|
+
* For request list sources (type='array', editor='requestListSources'), adds URL structure to items.
|
|
151
18
|
*
|
|
152
|
-
* @param properties
|
|
19
|
+
* @param {Record<string, ISchemaProperties>} properties - The input schema properties
|
|
20
|
+
* @returns {Record<string, ISchemaProperties>} Modified properties with nested properties
|
|
153
21
|
*/
|
|
154
|
-
function
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
22
|
+
export function buildNestedProperties(properties) {
|
|
23
|
+
const clonedProperties = { ...properties };
|
|
24
|
+
for (const [propertyName, property] of Object.entries(clonedProperties)) {
|
|
25
|
+
if (property.type === 'object' && property.editor === 'proxy') {
|
|
26
|
+
clonedProperties[propertyName] = {
|
|
27
|
+
...property,
|
|
28
|
+
properties: {
|
|
29
|
+
...property.properties,
|
|
30
|
+
useApifyProxy: {
|
|
31
|
+
title: 'Use Apify Proxy',
|
|
32
|
+
type: 'boolean',
|
|
33
|
+
description: 'Whether to use Apify Proxy - ALWAYS SET TO TRUE.',
|
|
34
|
+
default: true,
|
|
35
|
+
examples: [true],
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ['useApifyProxy'],
|
|
39
|
+
};
|
|
158
40
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
41
|
+
else if (property.type === 'array' && property.editor === 'requestListSources') {
|
|
42
|
+
clonedProperties[propertyName] = {
|
|
43
|
+
...property,
|
|
44
|
+
items: {
|
|
45
|
+
...property.items,
|
|
46
|
+
type: 'object',
|
|
47
|
+
title: 'Request list source',
|
|
48
|
+
description: 'Request list source',
|
|
49
|
+
properties: {
|
|
50
|
+
url: {
|
|
51
|
+
title: 'URL',
|
|
52
|
+
type: 'string',
|
|
53
|
+
description: 'URL of the request list source',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
163
58
|
}
|
|
164
59
|
}
|
|
165
|
-
return
|
|
60
|
+
return clonedProperties;
|
|
166
61
|
}
|
|
167
62
|
/**
|
|
168
63
|
* Filters schema properties to include only the necessary fields.
|
|
@@ -209,7 +104,7 @@ export function filterSchemaProperties(properties) {
|
|
|
209
104
|
* @param {IActorInputSchema} input - Actor input object containing properties and required fields
|
|
210
105
|
* @returns {Record<string, ISchemaProperties>} - Modified properties with required fields marked
|
|
211
106
|
*/
|
|
212
|
-
function markInputPropertiesAsRequired(input) {
|
|
107
|
+
export function markInputPropertiesAsRequired(input) {
|
|
213
108
|
const { required = [], properties } = input;
|
|
214
109
|
for (const property of Object.keys(properties)) {
|
|
215
110
|
if (required.includes(property)) {
|
|
@@ -222,106 +117,82 @@ function markInputPropertiesAsRequired(input) {
|
|
|
222
117
|
return properties;
|
|
223
118
|
}
|
|
224
119
|
/**
|
|
225
|
-
*
|
|
226
|
-
*
|
|
227
|
-
* Specifically handles special cases like proxy configuration and request list sources
|
|
228
|
-
* by adding predefined nested properties to these object types.
|
|
229
|
-
* This is necessary for the agent to correctly infer how to structure object inputs
|
|
230
|
-
* when passing arguments to the Actor.
|
|
120
|
+
* Helps determine the type of items in an array schema property.
|
|
121
|
+
* Priority order: explicit type in items > prefill type > default value type > editor type.
|
|
231
122
|
*
|
|
232
|
-
*
|
|
233
|
-
* For request list sources (type='array', editor='requestListSources'), adds URL structure to items.
|
|
123
|
+
* Based on JSON schema, the array needs a type, and most of the time Actor input schema does not have this, so we need to infer that.
|
|
234
124
|
*
|
|
235
|
-
* @param {Record<string, ISchemaProperties>} properties - The input schema properties
|
|
236
|
-
* @returns {Record<string, ISchemaProperties>} Modified properties with nested properties
|
|
237
125
|
*/
|
|
238
|
-
function
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
},
|
|
253
|
-
},
|
|
254
|
-
required: ['useApifyProxy'],
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
else if (property.type === 'array' && property.editor === 'requestListSources') {
|
|
258
|
-
clonedProperties[propertyName] = {
|
|
259
|
-
...property,
|
|
260
|
-
items: {
|
|
261
|
-
...property.items,
|
|
262
|
-
type: 'object',
|
|
263
|
-
title: 'Request list source',
|
|
264
|
-
description: 'Request list source',
|
|
265
|
-
properties: {
|
|
266
|
-
url: {
|
|
267
|
-
title: 'URL',
|
|
268
|
-
type: 'string',
|
|
269
|
-
description: 'URL of the request list source',
|
|
270
|
-
},
|
|
271
|
-
},
|
|
272
|
-
},
|
|
273
|
-
};
|
|
274
|
-
}
|
|
126
|
+
export function inferArrayItemType(property) {
|
|
127
|
+
return property.items?.type
|
|
128
|
+
|| (Array.isArray(property.prefill) && property.prefill.length > 0 && typeof property.prefill[0])
|
|
129
|
+
|| (Array.isArray(property.default) && property.default.length > 0 && typeof property.default[0])
|
|
130
|
+
|| (property.editor && getEditorItemType(property.editor))
|
|
131
|
+
|| null;
|
|
132
|
+
function getEditorItemType(editor) {
|
|
133
|
+
const editorTypeMap = {
|
|
134
|
+
requestListSources: 'object',
|
|
135
|
+
stringList: 'string',
|
|
136
|
+
json: 'object',
|
|
137
|
+
globs: 'object',
|
|
138
|
+
};
|
|
139
|
+
return editorTypeMap[editor] || null;
|
|
275
140
|
}
|
|
276
|
-
return clonedProperties;
|
|
277
141
|
}
|
|
278
142
|
/**
|
|
279
|
-
*
|
|
143
|
+
* Add enum values as string to property descriptions.
|
|
280
144
|
*
|
|
281
|
-
* This
|
|
282
|
-
*
|
|
145
|
+
* This is done as a preventive measure to prevent cases where library or agent framework
|
|
146
|
+
* does not handle enums or examples based on JSON schema definition.
|
|
283
147
|
*
|
|
284
|
-
*
|
|
148
|
+
* https://json-schema.org/understanding-json-schema/reference/enum
|
|
149
|
+
* https://json-schema.org/understanding-json-schema/reference/annotations
|
|
285
150
|
*
|
|
286
|
-
*
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
151
|
+
* @param properties
|
|
152
|
+
*/
|
|
153
|
+
export function addEnumsToDescriptionsWithExamples(properties) {
|
|
154
|
+
for (const property of Object.values(properties)) {
|
|
155
|
+
if (property.enum && property.enum.length > 0) {
|
|
156
|
+
property.description = `${property.description}\nPossible values: ${property.enum.slice(0, 20).join(',')}`;
|
|
157
|
+
}
|
|
158
|
+
const value = property.prefill ?? property.default;
|
|
159
|
+
if (value && !(Array.isArray(value) && value.length === 0)) {
|
|
160
|
+
property.examples = Array.isArray(value) ? value : [value];
|
|
161
|
+
property.description = `${property.description}\nExample values: ${JSON.stringify(value)}`;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return properties;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Helper function to shorten the enum list if it is too long.
|
|
292
168
|
*
|
|
293
|
-
* @param {string[]}
|
|
294
|
-
* @returns {
|
|
169
|
+
* @param {string[]} enumList - The list of enum values to be shortened.
|
|
170
|
+
* @returns {string[] | undefined} - The shortened enum list or undefined if the list is too long.
|
|
295
171
|
*/
|
|
296
|
-
export
|
|
297
|
-
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
catch (validationError) {
|
|
321
|
-
log.error(`Failed to compile AJV schema for Actor: ${result.actorFullName}. Error: ${validationError}`);
|
|
322
|
-
}
|
|
172
|
+
export function shortenEnum(enumList) {
|
|
173
|
+
let charCount = 0;
|
|
174
|
+
const resultEnumList = enumList.filter((enumValue) => {
|
|
175
|
+
charCount += enumValue.length;
|
|
176
|
+
return charCount <= ACTOR_ENUM_MAX_LENGTH;
|
|
177
|
+
});
|
|
178
|
+
return resultEnumList.length > 0 ? resultEnumList : undefined;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Shortens the description, enum, and items.enum properties of the schema properties.
|
|
182
|
+
* @param properties
|
|
183
|
+
*/
|
|
184
|
+
export function shortenProperties(properties) {
|
|
185
|
+
for (const property of Object.values(properties)) {
|
|
186
|
+
if (property.description.length > ACTOR_MAX_DESCRIPTION_LENGTH) {
|
|
187
|
+
property.description = `${property.description.slice(0, ACTOR_MAX_DESCRIPTION_LENGTH)}...`;
|
|
188
|
+
}
|
|
189
|
+
if (property.enum && property.enum?.length > 0) {
|
|
190
|
+
property.enum = shortenEnum(property.enum);
|
|
191
|
+
}
|
|
192
|
+
if (property.items?.enum && property.items.enum.length > 0) {
|
|
193
|
+
property.items.enum = shortenEnum(property.items.enum);
|
|
323
194
|
}
|
|
324
195
|
}
|
|
325
|
-
return
|
|
196
|
+
return properties;
|
|
326
197
|
}
|
|
327
|
-
//# sourceMappingURL=
|
|
198
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/tools/utils.ts"],"names":[],"mappings":"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"}
|