@apify/actors-mcp-server 0.9.21-beta.4 → 0.9.21-beta.6
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/input.d.ts +0 -1
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +4 -13
- package/dist/input.js.map +1 -1
- package/dist/tools/categories.d.ts +11 -3
- package/dist/tools/categories.d.ts.map +1 -1
- package/dist/tools/categories.js +32 -6
- package/dist/tools/categories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/server-instructions/index.js +1 -1
- package/dist/utils/server-instructions/index.js.map +1 -1
- package/dist/utils/tools_loader.d.ts.map +1 -1
- package/dist/utils/tools_loader.js +33 -20
- package/dist/utils/tools_loader.js.map +1 -1
- package/package.json +4 -1
package/dist/input.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { Input } from './types.js';
|
|
2
|
-
export declare function toBoolean(value: unknown, defaultValue: boolean): boolean;
|
|
3
2
|
export declare function normalizeList(value: string | unknown[] | undefined): string[] | undefined;
|
|
4
3
|
/**
|
|
5
4
|
* Normalize user-provided input into a canonical `Input`.
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AAGtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAMzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAqCjE"}
|
package/dist/input.js
CHANGED
|
@@ -6,17 +6,7 @@
|
|
|
6
6
|
* intent via `undefined` (use defaults later) vs empty (explicitly none).
|
|
7
7
|
*/
|
|
8
8
|
import log from '@apify/log';
|
|
9
|
-
|
|
10
|
-
// Normalize booleans that may arrive as strings or be undefined.
|
|
11
|
-
export function toBoolean(value, defaultValue) {
|
|
12
|
-
if (value === undefined)
|
|
13
|
-
return defaultValue;
|
|
14
|
-
if (typeof value === 'boolean')
|
|
15
|
-
return value;
|
|
16
|
-
if (typeof value === 'string')
|
|
17
|
-
return value.toLowerCase() === 'true';
|
|
18
|
-
return defaultValue;
|
|
19
|
-
}
|
|
9
|
+
import { parseBooleanOrNull } from '@apify/utilities';
|
|
20
10
|
// Normalize lists from comma-separated strings or arrays.
|
|
21
11
|
export function normalizeList(value) {
|
|
22
12
|
if (value === undefined)
|
|
@@ -40,16 +30,17 @@ export function normalizeList(value) {
|
|
|
40
30
|
* - `undefined` → use defaults; `[]` → explicitly none.
|
|
41
31
|
*/
|
|
42
32
|
export function processInput(originalInput) {
|
|
33
|
+
var _a, _b;
|
|
43
34
|
// Normalize actors (strings and arrays) to a clean array or undefined
|
|
44
35
|
const actors = normalizeList(originalInput.actors);
|
|
45
36
|
// Map deprecated flag to the new one and normalize both to boolean.
|
|
46
37
|
let enableAddingActors;
|
|
47
38
|
if (originalInput.enableAddingActors === undefined && originalInput.enableActorAutoLoading !== undefined) {
|
|
48
39
|
log.warning('enableActorAutoLoading is deprecated, use enableAddingActors instead');
|
|
49
|
-
enableAddingActors =
|
|
40
|
+
enableAddingActors = (_a = parseBooleanOrNull(originalInput.enableActorAutoLoading)) !== null && _a !== void 0 ? _a : false;
|
|
50
41
|
}
|
|
51
42
|
else {
|
|
52
|
-
enableAddingActors =
|
|
43
|
+
enableAddingActors = (_b = parseBooleanOrNull(originalInput.enableAddingActors)) !== null && _b !== void 0 ? _b : false;
|
|
53
44
|
}
|
|
54
45
|
// Normalize tools (strings/arrays) to a clean array or undefined
|
|
55
46
|
let tools = normalizeList(originalInput.tools);
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,GAAG,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,GAAG,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAItD,0DAA0D;AAC1D,MAAM,UAAU,aAAa,CAAC,KAAqC;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,OAAO,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,KAAK,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,aAA6B;;IACtD,sEAAsE;IACtE,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAoC,CAAC;IAEtF,oEAAoE;IACpE,IAAI,kBAA2B,CAAC;IAChC,IAAI,aAAa,CAAC,kBAAkB,KAAK,SAAS,IAAI,aAAa,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACvG,GAAG,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;QACpF,kBAAkB,GAAG,MAAA,kBAAkB,CAAC,aAAa,CAAC,sBAAsB,CAAC,mCAAI,KAAK,CAAC;IAC3F,CAAC;SAAM,CAAC;QACJ,kBAAkB,GAAG,MAAA,kBAAkB,CAAC,aAAa,CAAC,kBAAkB,CAAC,mCAAI,KAAK,CAAC;IACvF,CAAC;IAED,iEAAiE;IACjE,IAAI,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,KAAsC,CAA0C,CAAC;IAEzH,oFAAoF;IACpF,oCAAoC;IACpC,wIAAwI;IACxI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,GAAG,MAAM,CAAmB,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,MAAM,YAAY,GAAmB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,CAAC,KAAqB,CAAC,CAAC;YAC9B,KAAK,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAmB,CAAC;QAC3D,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,OAAO;QACH,GAAG,aAAa;QAChB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QAC9F,kBAAkB;QAClB,KAAK;KACR,CAAC;AACN,CAAC"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* - A mode map (e.g. { default: ToolEntry, apps: ToolEntry }) — resolver picks entry[mode]
|
|
14
14
|
* - A partial mode map (e.g. { apps: ToolEntry }) — included only for listed modes
|
|
15
15
|
*/
|
|
16
|
+
import { HelperTools } from '../const.js';
|
|
16
17
|
import type { ToolEntry } from '../types.js';
|
|
17
18
|
import { ServerMode } from '../types.js';
|
|
18
19
|
/**
|
|
@@ -29,9 +30,6 @@ export declare const toolCategories: {
|
|
|
29
30
|
default: ToolEntry;
|
|
30
31
|
apps: ToolEntry;
|
|
31
32
|
})[];
|
|
32
|
-
ui: {
|
|
33
|
-
apps: ToolEntry;
|
|
34
|
-
}[];
|
|
35
33
|
docs: ToolEntry[];
|
|
36
34
|
runs: ToolEntry[];
|
|
37
35
|
storage: ToolEntry[];
|
|
@@ -56,4 +54,14 @@ export type ToolCategoryMap = Record<(typeof CATEGORY_NAMES)[number], ToolEntry[
|
|
|
56
54
|
*/
|
|
57
55
|
export declare function getCategoryTools(mode?: ServerMode): ToolCategoryMap;
|
|
58
56
|
export declare const toolCategoriesEnabledByDefault: (typeof CATEGORY_NAMES)[number][];
|
|
57
|
+
/**
|
|
58
|
+
* Apps-mode pairing: each base tool name maps to its widget sibling.
|
|
59
|
+
* In apps mode, a widget is added to the resolved tool list iff its base
|
|
60
|
+
* tool is already present — see `getToolsForServerMode` in tools_loader.ts.
|
|
61
|
+
*
|
|
62
|
+
* Pairing is intentionally one-way (base → widget). Selecting a widget alone
|
|
63
|
+
* does NOT auto-bring its base; callers asking for widget-only get a UI without
|
|
64
|
+
* the programmatic data tool. To get both, select the base (or both explicitly).
|
|
65
|
+
*/
|
|
66
|
+
export declare const WIDGET_BY_BASE_TOOL: ReadonlyMap<HelperTools, ToolEntry>;
|
|
59
67
|
//# sourceMappingURL=categories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/tools/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyCzC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../src/tools/categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyCzC;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAiCoB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAkC,CAAC,MAAM,OAAO,cAAc,CAAC,EAAE,CAAC;AAE7F,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAmC,CAAC;AAEtF,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAwBnF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,UAA+B,GAAG,eAAe,CAIvF;AAED,eAAO,MAAM,8BAA8B,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,EAG3E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,WAAW,EAAE,SAAS,CAKlE,CAAC"}
|
package/dist/tools/categories.js
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool categories and their associated tools.
|
|
3
|
+
* This file is separate from index.ts to avoid circular dependencies.
|
|
4
|
+
*
|
|
5
|
+
* Tools within each category are ordered by the typical workflow:
|
|
6
|
+
* search/discover → get details → execute → check status → get results
|
|
7
|
+
*
|
|
8
|
+
* The final tool ordering presented to MCP clients is determined by tools-loader.ts,
|
|
9
|
+
* which also auto-injects get-actor-run and get-actor-output right after call-actor.
|
|
10
|
+
*
|
|
11
|
+
* Each tool entry can be:
|
|
12
|
+
* - A plain ToolEntry — mode-independent, always included
|
|
13
|
+
* - A mode map (e.g. { default: ToolEntry, apps: ToolEntry }) — resolver picks entry[mode]
|
|
14
|
+
* - A partial mode map (e.g. { apps: ToolEntry }) — included only for listed modes
|
|
15
|
+
*/
|
|
16
|
+
import { HelperTools } from '../const.js';
|
|
1
17
|
import { ServerMode } from '../types.js';
|
|
2
18
|
import { appsCallActor } from './apps/call_actor.js';
|
|
3
19
|
import { appsCallActorWidget } from './apps/call_actor_widget.js';
|
|
@@ -42,14 +58,9 @@ export const toolCategories = {
|
|
|
42
58
|
actors: [
|
|
43
59
|
defaultSearchActors,
|
|
44
60
|
defaultFetchActorDetails,
|
|
61
|
+
// call-actor is different for default and apps mode (sync vs async call)
|
|
45
62
|
{ default: defaultCallActor, apps: appsCallActor },
|
|
46
63
|
],
|
|
47
|
-
ui: [
|
|
48
|
-
{ apps: searchActorsWidgetTool },
|
|
49
|
-
{ apps: fetchActorDetailsWidgetTool },
|
|
50
|
-
{ apps: appsCallActorWidget },
|
|
51
|
-
{ apps: getActorRunWidgetTool },
|
|
52
|
-
],
|
|
53
64
|
docs: [
|
|
54
65
|
searchApifyDocsTool,
|
|
55
66
|
fetchApifyDocsTool,
|
|
@@ -117,4 +128,19 @@ export const toolCategoriesEnabledByDefault = [
|
|
|
117
128
|
'actors',
|
|
118
129
|
'docs',
|
|
119
130
|
];
|
|
131
|
+
/**
|
|
132
|
+
* Apps-mode pairing: each base tool name maps to its widget sibling.
|
|
133
|
+
* In apps mode, a widget is added to the resolved tool list iff its base
|
|
134
|
+
* tool is already present — see `getToolsForServerMode` in tools_loader.ts.
|
|
135
|
+
*
|
|
136
|
+
* Pairing is intentionally one-way (base → widget). Selecting a widget alone
|
|
137
|
+
* does NOT auto-bring its base; callers asking for widget-only get a UI without
|
|
138
|
+
* the programmatic data tool. To get both, select the base (or both explicitly).
|
|
139
|
+
*/
|
|
140
|
+
export const WIDGET_BY_BASE_TOOL = new Map([
|
|
141
|
+
[HelperTools.STORE_SEARCH, searchActorsWidgetTool],
|
|
142
|
+
[HelperTools.ACTOR_GET_DETAILS, fetchActorDetailsWidgetTool],
|
|
143
|
+
[HelperTools.ACTOR_CALL, appsCallActorWidget],
|
|
144
|
+
[HelperTools.ACTOR_RUNS_GET, getActorRunWidgetTool],
|
|
145
|
+
]);
|
|
120
146
|
//# sourceMappingURL=categories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/tools/categories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/tools/categories.ts"],"names":[],"mappings":"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"}
|