@futdevpro/nts-dynamo 1.15.293 → 1.15.294
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/build/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +1 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +6 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_modules/mcp/_collections/mcp-tool-load.util.d.ts +46 -0
- package/build/_modules/mcp/_collections/mcp-tool-load.util.d.ts.map +1 -0
- package/build/_modules/mcp/_collections/mcp-tool-load.util.js +93 -0
- package/build/_modules/mcp/_collections/mcp-tool-load.util.js.map +1 -0
- package/build/_modules/mcp/_enums/mcp-tool-exposure.type-enum.d.ts +14 -0
- package/build/_modules/mcp/_enums/mcp-tool-exposure.type-enum.d.ts.map +1 -0
- package/build/_modules/mcp/_enums/mcp-tool-exposure.type-enum.js +18 -0
- package/build/_modules/mcp/_enums/mcp-tool-exposure.type-enum.js.map +1 -0
- package/build/_modules/mcp/_models/control-models/mcp-tool-params.control-model.d.ts +63 -0
- package/build/_modules/mcp/_models/control-models/mcp-tool-params.control-model.d.ts.map +1 -0
- package/build/_modules/mcp/_models/control-models/mcp-tool-params.control-model.js +115 -0
- package/build/_modules/mcp/_models/control-models/mcp-tool-params.control-model.js.map +1 -0
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts +15 -0
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.d.ts.map +1 -0
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.js +3 -0
- package/build/_modules/mcp/_models/interfaces/mcp-settings.interface.js.map +1 -0
- package/build/_modules/mcp/index.d.ts +4 -0
- package/build/_modules/mcp/index.d.ts.map +1 -1
- package/build/_modules/mcp/index.js +7 -0
- package/build/_modules/mcp/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"global-settings.const.d.ts","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAC;AAIxF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,qBAiInC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-settings.const.js","sourceRoot":"","sources":["../../src/_collections/global-settings.const.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { DyNTS_AppVersionHeader_Settings } from './app-version-header-settings.i
|
|
|
4
4
|
import { DyNTS_Environment_Settings } from './environment-settings.interface';
|
|
5
5
|
import { DyNTS_GlobalLog_Settings } from './global-log-settings.interface';
|
|
6
6
|
import { DyNTS_SecurityHeaders_Settings } from './security-headers-settings.interface';
|
|
7
|
+
import type { DyNTS_Mcp_Settings } from '../../_modules/mcp/_models/interfaces/mcp-settings.interface';
|
|
7
8
|
/**
|
|
8
9
|
*
|
|
9
10
|
*
|
|
@@ -112,6 +113,11 @@ export interface DyNTS_Global_Settings {
|
|
|
112
113
|
* default settings: {@link DyNTS_Bot_Global_Settings}
|
|
113
114
|
*/
|
|
114
115
|
bot_settings: any;
|
|
116
|
+
/**
|
|
117
|
+
* Server-wide MCP defaults (HP-DOPL MP-3.2): tool-name prefix, read-only server, heavy-tool load protection.
|
|
118
|
+
* `null` (default) = every field takes its documented default ({@link DyNTS_Mcp_Settings}).
|
|
119
|
+
*/
|
|
120
|
+
mcp_settings: DyNTS_Mcp_Settings | null;
|
|
115
121
|
/**
|
|
116
122
|
* this setting will set the openai settings
|
|
117
123
|
* (this will be set in the {@link DyNTS_OAI_LLMChat_ServiceBase} constructor)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"global-settings.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/global-settings.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { DyNTS_McpTool_Params } from '../_models/control-models/mcp-tool-params.control-model';
|
|
2
|
+
import { DyNTS_Mcp_Settings } from '../_models/interfaces/mcp-settings.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Load protection of MCP tool calls (HP-DOPL MP-3.2, DMCP-013) — the FAM `assertHeapCapacity` +
|
|
5
|
+
* `FAM_OperationQueue_Service` pattern at bedrock level. Only HEAVY tools (`DyNTS_McpTool_Params.isHeavy`) are guarded;
|
|
6
|
+
* a light call runs immediately.
|
|
7
|
+
*
|
|
8
|
+
* For a heavy call, in this order:
|
|
9
|
+
* 1. **load shed** — while the installed `DyNTS_MemoryGuard` reports critical pressure the call is rejected with 503
|
|
10
|
+
* `DyNTS-MTL-SHD` (retryable), so a new heavy job does not push a strained heap into OOM;
|
|
11
|
+
* 2. **serialization** — at most `mcp_settings.heavyToolConcurrency` (default 1) heavy calls run at once; the rest
|
|
12
|
+
* wait in FIFO order. A failed call releases its slot too.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const result: unknown = await DyNTS_McpToolLoad_Util.run(scanTool, () => scanTool.operation.run(ctx, path));
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class DyNTS_McpToolLoad_Util {
|
|
20
|
+
/** Heavy calls running now. */
|
|
21
|
+
private static running;
|
|
22
|
+
/** Resolvers of the heavy calls waiting for a slot (FIFO). */
|
|
23
|
+
private static readonly waiters;
|
|
24
|
+
/**
|
|
25
|
+
* Runs the task with the load protection of the tool.
|
|
26
|
+
* @param tool - the tool being called
|
|
27
|
+
* @param task - the call itself
|
|
28
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
29
|
+
* @throws 503 `DyNTS-MTL-SHD` when a heavy call is shed under memory pressure
|
|
30
|
+
*/
|
|
31
|
+
static run<T>(tool: DyNTS_McpTool_Params, task: () => Promise<T>, settings?: DyNTS_Mcp_Settings | null): Promise<T>;
|
|
32
|
+
/** Heavy calls running and waiting — for health endpoints and specs. */
|
|
33
|
+
static stats(): {
|
|
34
|
+
running: number;
|
|
35
|
+
queued: number;
|
|
36
|
+
};
|
|
37
|
+
/** Rejects a heavy call while the installed memory guard wants to shed load. */
|
|
38
|
+
private static assertMemoryCapacity;
|
|
39
|
+
/** Waits for a heavy slot (FIFO). */
|
|
40
|
+
private static acquire;
|
|
41
|
+
/** Hands the slot to the next waiter, or frees it. */
|
|
42
|
+
private static release;
|
|
43
|
+
/** The heavy concurrency limit (at least 1). */
|
|
44
|
+
private static limit;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=mcp-tool-load.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-load.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-tool-load.util.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGlF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAsB;IACjC,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAa;IAEnC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAErD;;;;;;OAMG;WACU,GAAG,CAAC,CAAC,EAChB,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,QAAQ,GAAE,kBAAkB,GAAG,IAAyC,GACvE,OAAO,CAAC,CAAC,CAAC;IAgBb,wEAAwE;IACxE,MAAM,CAAC,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAInD,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAenC,qCAAqC;mBAChB,OAAO;IAa5B,sDAAsD;IACtD,OAAO,CAAC,MAAM,CAAC,OAAO;IAYtB,gDAAgD;IAChD,OAAO,CAAC,MAAM,CAAC,KAAK;CAGrB"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_McpToolLoad_Util = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const global_settings_const_1 = require("../../../_collections/global-settings.const");
|
|
6
|
+
const memory_guard_service_1 = require("../../../_services/core/memory-guard.service");
|
|
7
|
+
/**
|
|
8
|
+
* Load protection of MCP tool calls (HP-DOPL MP-3.2, DMCP-013) — the FAM `assertHeapCapacity` +
|
|
9
|
+
* `FAM_OperationQueue_Service` pattern at bedrock level. Only HEAVY tools (`DyNTS_McpTool_Params.isHeavy`) are guarded;
|
|
10
|
+
* a light call runs immediately.
|
|
11
|
+
*
|
|
12
|
+
* For a heavy call, in this order:
|
|
13
|
+
* 1. **load shed** — while the installed `DyNTS_MemoryGuard` reports critical pressure the call is rejected with 503
|
|
14
|
+
* `DyNTS-MTL-SHD` (retryable), so a new heavy job does not push a strained heap into OOM;
|
|
15
|
+
* 2. **serialization** — at most `mcp_settings.heavyToolConcurrency` (default 1) heavy calls run at once; the rest
|
|
16
|
+
* wait in FIFO order. A failed call releases its slot too.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const result: unknown = await DyNTS_McpToolLoad_Util.run(scanTool, () => scanTool.operation.run(ctx, path));
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
class DyNTS_McpToolLoad_Util {
|
|
24
|
+
/** Heavy calls running now. */
|
|
25
|
+
static running = 0;
|
|
26
|
+
/** Resolvers of the heavy calls waiting for a slot (FIFO). */
|
|
27
|
+
static waiters = [];
|
|
28
|
+
/**
|
|
29
|
+
* Runs the task with the load protection of the tool.
|
|
30
|
+
* @param tool - the tool being called
|
|
31
|
+
* @param task - the call itself
|
|
32
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
33
|
+
* @throws 503 `DyNTS-MTL-SHD` when a heavy call is shed under memory pressure
|
|
34
|
+
*/
|
|
35
|
+
static async run(tool, task, settings = global_settings_const_1.DyNTS_global_settings.mcp_settings) {
|
|
36
|
+
if (!tool.isHeavy) {
|
|
37
|
+
return task();
|
|
38
|
+
}
|
|
39
|
+
DyNTS_McpToolLoad_Util.assertMemoryCapacity(tool, settings);
|
|
40
|
+
await DyNTS_McpToolLoad_Util.acquire(settings);
|
|
41
|
+
try {
|
|
42
|
+
return await task();
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
DyNTS_McpToolLoad_Util.release(settings);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Heavy calls running and waiting — for health endpoints and specs. */
|
|
49
|
+
static stats() {
|
|
50
|
+
return { running: DyNTS_McpToolLoad_Util.running, queued: DyNTS_McpToolLoad_Util.waiters.length };
|
|
51
|
+
}
|
|
52
|
+
/** Rejects a heavy call while the installed memory guard wants to shed load. */
|
|
53
|
+
static assertMemoryCapacity(tool, settings) {
|
|
54
|
+
const guard = memory_guard_service_1.DyNTS_MemoryGuard.getInstance();
|
|
55
|
+
if (settings?.shedHeavyToolsUnderMemoryPressure === false || !guard.isInstalled() || !guard.shouldShedLoad()) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
59
|
+
status: 503,
|
|
60
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-MTL-SHD`,
|
|
61
|
+
message: `heavy MCP tool "${tool.tool}" rejected under memory pressure - retry when the pressure eases`,
|
|
62
|
+
additionalContent: { tool: tool.tool, pressure: guard.pressure() },
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Waits for a heavy slot (FIFO). */
|
|
66
|
+
static async acquire(settings) {
|
|
67
|
+
if (DyNTS_McpToolLoad_Util.running < DyNTS_McpToolLoad_Util.limit(settings)) {
|
|
68
|
+
DyNTS_McpToolLoad_Util.running++;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// the slot is handed over by release(), so `running` already counts this call when it resumes
|
|
72
|
+
await new Promise((resolve) => {
|
|
73
|
+
DyNTS_McpToolLoad_Util.waiters.push(resolve);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
/** Hands the slot to the next waiter, or frees it. */
|
|
77
|
+
static release(settings) {
|
|
78
|
+
const next = DyNTS_McpToolLoad_Util.running <= DyNTS_McpToolLoad_Util.limit(settings) ?
|
|
79
|
+
DyNTS_McpToolLoad_Util.waiters.shift() : undefined;
|
|
80
|
+
if (next) {
|
|
81
|
+
next();
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
DyNTS_McpToolLoad_Util.running--;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** The heavy concurrency limit (at least 1). */
|
|
88
|
+
static limit(settings) {
|
|
89
|
+
return Math.max(1, Math.floor(settings?.heavyToolConcurrency ?? 1));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.DyNTS_McpToolLoad_Util = DyNTS_McpToolLoad_Util;
|
|
93
|
+
//# sourceMappingURL=mcp-tool-load.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-load.util.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_collections/mcp-tool-load.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How an operation is exposed as an MCP tool (HP-DOPL MP-3.2, DMCP-001/018).
|
|
3
|
+
*
|
|
4
|
+
* - `default` — advertised in `tools/list`, except on a read-only MCP server (`mcp_settings.readOnly`);
|
|
5
|
+
* - `none` — never advertised (the operation stays REST/CLI only; the coverage review counts it as deliberate);
|
|
6
|
+
* - `read-only` — the tool has no side effects: advertised on a read-only server too, with the MCP
|
|
7
|
+
* `readOnlyHint` annotation.
|
|
8
|
+
*/
|
|
9
|
+
export declare enum DyNTS_McpToolExposure_Type {
|
|
10
|
+
default = "default",
|
|
11
|
+
none = "none",
|
|
12
|
+
readOnly = "read-only"
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=mcp-tool-exposure.type-enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-exposure.type-enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_enums/mcp-tool-exposure.type-enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,oBAAY,0BAA0B;IACpC,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,cAAc;CACvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_McpToolExposure_Type = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* How an operation is exposed as an MCP tool (HP-DOPL MP-3.2, DMCP-001/018).
|
|
6
|
+
*
|
|
7
|
+
* - `default` — advertised in `tools/list`, except on a read-only MCP server (`mcp_settings.readOnly`);
|
|
8
|
+
* - `none` — never advertised (the operation stays REST/CLI only; the coverage review counts it as deliberate);
|
|
9
|
+
* - `read-only` — the tool has no side effects: advertised on a read-only server too, with the MCP
|
|
10
|
+
* `readOnlyHint` annotation.
|
|
11
|
+
*/
|
|
12
|
+
var DyNTS_McpToolExposure_Type;
|
|
13
|
+
(function (DyNTS_McpToolExposure_Type) {
|
|
14
|
+
DyNTS_McpToolExposure_Type["default"] = "default";
|
|
15
|
+
DyNTS_McpToolExposure_Type["none"] = "none";
|
|
16
|
+
DyNTS_McpToolExposure_Type["readOnly"] = "read-only";
|
|
17
|
+
})(DyNTS_McpToolExposure_Type || (exports.DyNTS_McpToolExposure_Type = DyNTS_McpToolExposure_Type = {}));
|
|
18
|
+
//# sourceMappingURL=mcp-tool-exposure.type-enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-exposure.type-enum.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_enums/mcp-tool-exposure.type-enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;GAOG;AACH,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,iDAAmB,CAAA;IACnB,2CAAa,CAAA;IACb,oDAAsB,CAAA;AACxB,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { DyFM_Operation_JsonSchema, DyFM_Operation_Settings } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
import { DyNTS_McpToolExposure_Type } from '../../_enums/mcp-tool-exposure.type-enum';
|
|
3
|
+
import { DyNTS_Mcp_Settings } from '../interfaces/mcp-settings.interface';
|
|
4
|
+
/**
|
|
5
|
+
* An operation exposed as an MCP tool (HP-DOPL MP-3.2, decision B+C): the MCP-specific settings on top of a
|
|
6
|
+
* transport-independent `DyFM_Operation_Settings` — the tool name, the exposure, an optional input schema override
|
|
7
|
+
* and the load protection flag. The operation stays the single source of the implementation (`run`).
|
|
8
|
+
*
|
|
9
|
+
* Follows the Dynamo settings pattern: a `set` constructor, defaults applied in the constructor, construction-time
|
|
10
|
+
* validation with a coded `DyFM_Error` that carries the construction location.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* const getNoteTool: DyNTS_McpTool_Params = new DyNTS_McpTool_Params({
|
|
15
|
+
* operation: getNote, // name: 'notes.get'
|
|
16
|
+
* exposure: DyNTS_McpToolExposure_Type.readOnly,
|
|
17
|
+
* });
|
|
18
|
+
* // getNoteTool.getToolName() === 'notes.get' (or 'organizer.notes.get' with mcp_settings.toolPrefix)
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class DyNTS_McpTool_Params {
|
|
22
|
+
/** The operation this tool runs. */
|
|
23
|
+
readonly operation: DyFM_Operation_Settings<unknown, unknown[], unknown>;
|
|
24
|
+
/** The tool name without the server prefix; default: the operation name (`<domain>.<action>`). */
|
|
25
|
+
readonly tool: string;
|
|
26
|
+
/** The tool description for the agent; default: the operation description. */
|
|
27
|
+
readonly description: string;
|
|
28
|
+
/** How the tool is advertised; default: `default`. */
|
|
29
|
+
readonly exposure: DyNTS_McpToolExposure_Type;
|
|
30
|
+
/** The input schema; default: generated from the operation (`DyFM_OperationSchema_Util.inputSchema`). */
|
|
31
|
+
readonly inputSchema: DyFM_Operation_JsonSchema;
|
|
32
|
+
/** A heavy tool is serialized and shed under memory pressure (DMCP-013); default: `false`. */
|
|
33
|
+
readonly isHeavy: boolean;
|
|
34
|
+
/** Source location of the construction, for debugging a misconfigured tool. */
|
|
35
|
+
readonly stackLocation: string;
|
|
36
|
+
/**
|
|
37
|
+
* Validates the settings and applies the defaults.
|
|
38
|
+
* @param set - the tool settings; throws a coded `DyFM_Error` when invalid
|
|
39
|
+
*/
|
|
40
|
+
constructor(set: {
|
|
41
|
+
operation: DyFM_Operation_Settings<unknown, unknown[], unknown>;
|
|
42
|
+
tool?: string;
|
|
43
|
+
description?: string;
|
|
44
|
+
exposure?: DyNTS_McpToolExposure_Type;
|
|
45
|
+
inputSchema?: DyFM_Operation_JsonSchema;
|
|
46
|
+
isHeavy?: boolean;
|
|
47
|
+
stackLocation?: string;
|
|
48
|
+
});
|
|
49
|
+
/**
|
|
50
|
+
* The advertised tool name: the server prefix (`mcp_settings.toolPrefix`) + the tool name.
|
|
51
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
52
|
+
* @throws `DyNTS-MTP-PFX` when the prefixed name is not a valid tool name
|
|
53
|
+
*/
|
|
54
|
+
getToolName(settings?: DyNTS_Mcp_Settings | null): string;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the tool appears in `tools/list`: never for `none`; on a read-only server only for `read-only`.
|
|
57
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
58
|
+
*/
|
|
59
|
+
isAdvertised(settings?: DyNTS_Mcp_Settings | null): boolean;
|
|
60
|
+
/** Builds the construction error with a stable error code and the construction location. */
|
|
61
|
+
private static invalid;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=mcp-tool-params.control-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-params.control-model.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/control-models/mcp-tool-params.control-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAC0C,yBAAyB,EAAE,uBAAuB,EAElG,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAM1E;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,oBAAoB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACzE,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAC9C,yGAAyG;IACzG,QAAQ,CAAC,WAAW,EAAE,yBAAyB,CAAC;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B;;;OAGG;gBACS,GAAG,EAAE;QACf,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,0BAA0B,CAAC;QACtC,WAAW,CAAC,EAAE,yBAAyB,CAAC;QACxC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IA4DD;;;;OAIG;IACH,WAAW,CAAC,QAAQ,GAAE,kBAAkB,GAAG,IAAyC,GAAG,MAAM;IAY7F;;;OAGG;IACH,YAAY,CAAC,QAAQ,GAAE,kBAAkB,GAAG,IAAyC,GAAG,OAAO;IAQ/F,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,OAAO;CAQvB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_McpTool_Params = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const global_settings_const_1 = require("../../../../_collections/global-settings.const");
|
|
6
|
+
const mcp_tool_exposure_type_enum_1 = require("../../_enums/mcp-tool-exposure.type-enum");
|
|
7
|
+
/** MCP tool name characters (MCP specification: letters, digits, `_`, `-`, `.`; 1–128 characters). */
|
|
8
|
+
const DyNTS_mcpToolName = /^[A-Za-z0-9_.-]{1,128}$/;
|
|
9
|
+
/**
|
|
10
|
+
* An operation exposed as an MCP tool (HP-DOPL MP-3.2, decision B+C): the MCP-specific settings on top of a
|
|
11
|
+
* transport-independent `DyFM_Operation_Settings` — the tool name, the exposure, an optional input schema override
|
|
12
|
+
* and the load protection flag. The operation stays the single source of the implementation (`run`).
|
|
13
|
+
*
|
|
14
|
+
* Follows the Dynamo settings pattern: a `set` constructor, defaults applied in the constructor, construction-time
|
|
15
|
+
* validation with a coded `DyFM_Error` that carries the construction location.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* const getNoteTool: DyNTS_McpTool_Params = new DyNTS_McpTool_Params({
|
|
20
|
+
* operation: getNote, // name: 'notes.get'
|
|
21
|
+
* exposure: DyNTS_McpToolExposure_Type.readOnly,
|
|
22
|
+
* });
|
|
23
|
+
* // getNoteTool.getToolName() === 'notes.get' (or 'organizer.notes.get' with mcp_settings.toolPrefix)
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
class DyNTS_McpTool_Params {
|
|
27
|
+
/** The operation this tool runs. */
|
|
28
|
+
operation;
|
|
29
|
+
/** The tool name without the server prefix; default: the operation name (`<domain>.<action>`). */
|
|
30
|
+
tool;
|
|
31
|
+
/** The tool description for the agent; default: the operation description. */
|
|
32
|
+
description;
|
|
33
|
+
/** How the tool is advertised; default: `default`. */
|
|
34
|
+
exposure;
|
|
35
|
+
/** The input schema; default: generated from the operation (`DyFM_OperationSchema_Util.inputSchema`). */
|
|
36
|
+
inputSchema;
|
|
37
|
+
/** A heavy tool is serialized and shed under memory pressure (DMCP-013); default: `false`. */
|
|
38
|
+
isHeavy;
|
|
39
|
+
/** Source location of the construction, for debugging a misconfigured tool. */
|
|
40
|
+
stackLocation;
|
|
41
|
+
/**
|
|
42
|
+
* Validates the settings and applies the defaults.
|
|
43
|
+
* @param set - the tool settings; throws a coded `DyFM_Error` when invalid
|
|
44
|
+
*/
|
|
45
|
+
constructor(set) {
|
|
46
|
+
const stackLocation = set?.stackLocation ?? (0, fsm_dynamo_1.DyFM_getConstructionStackLocation)();
|
|
47
|
+
const operation = set?.operation;
|
|
48
|
+
// a plain object would skip the construction-time validation of the operation
|
|
49
|
+
if (typeof operation?.name !== 'string' || !operation?.expose) {
|
|
50
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-OPR', 'operation must be a constructed DyFM_Operation_Settings', stackLocation);
|
|
51
|
+
}
|
|
52
|
+
const label = operation.name;
|
|
53
|
+
if (operation.expose.mcp === false) {
|
|
54
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-EXP', `operation "${label}" is not exposed on MCP (expose.mcp: false)`, stackLocation);
|
|
55
|
+
}
|
|
56
|
+
if (typeof operation.run !== 'function') {
|
|
57
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-RUN', `operation "${label}" has no run implementation, so it can not be a tool`, stackLocation);
|
|
58
|
+
}
|
|
59
|
+
const tool = set.tool ?? operation.name;
|
|
60
|
+
if (typeof tool !== 'string' || !DyNTS_mcpToolName.test(tool)) {
|
|
61
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-NAM', `tool name must be 1-128 letters, digits, "_", "-" or "." (got: ${JSON.stringify(tool)})`, stackLocation);
|
|
62
|
+
}
|
|
63
|
+
const exposure = set.exposure ?? mcp_tool_exposure_type_enum_1.DyNTS_McpToolExposure_Type.default;
|
|
64
|
+
if (!Object.values(mcp_tool_exposure_type_enum_1.DyNTS_McpToolExposure_Type).includes(exposure)) {
|
|
65
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-EXV', `unknown exposure ${JSON.stringify(exposure)} (tool "${tool}")`, stackLocation);
|
|
66
|
+
}
|
|
67
|
+
// an MCP tool input is always a JSON object (the arguments of tools/call)
|
|
68
|
+
if (set.inputSchema !== undefined && set.inputSchema?.type !== 'object') {
|
|
69
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-SCH', `inputSchema override must be an object schema (tool "${tool}")`, stackLocation);
|
|
70
|
+
}
|
|
71
|
+
if (set.isHeavy !== undefined && typeof set.isHeavy !== 'boolean') {
|
|
72
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-HVY', `isHeavy must be a boolean (tool "${tool}")`, stackLocation);
|
|
73
|
+
}
|
|
74
|
+
this.operation = operation;
|
|
75
|
+
this.tool = tool;
|
|
76
|
+
this.description = set.description ?? operation.description;
|
|
77
|
+
this.exposure = exposure;
|
|
78
|
+
this.inputSchema = set.inputSchema ?? fsm_dynamo_1.DyFM_OperationSchema_Util.inputSchema(operation);
|
|
79
|
+
this.isHeavy = set.isHeavy === true;
|
|
80
|
+
this.stackLocation = stackLocation;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The advertised tool name: the server prefix (`mcp_settings.toolPrefix`) + the tool name.
|
|
84
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
85
|
+
* @throws `DyNTS-MTP-PFX` when the prefixed name is not a valid tool name
|
|
86
|
+
*/
|
|
87
|
+
getToolName(settings = global_settings_const_1.DyNTS_global_settings.mcp_settings) {
|
|
88
|
+
const name = `${settings?.toolPrefix ?? ''}${this.tool}`;
|
|
89
|
+
if (!DyNTS_mcpToolName.test(name)) {
|
|
90
|
+
throw DyNTS_McpTool_Params.invalid('DyNTS-MTP-PFX', `the prefixed tool name is invalid: ${JSON.stringify(name)}`, this.stackLocation);
|
|
91
|
+
}
|
|
92
|
+
return name;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether the tool appears in `tools/list`: never for `none`; on a read-only server only for `read-only`.
|
|
96
|
+
* @param settings - the MCP settings (default: `DyNTS_global_settings.mcp_settings`)
|
|
97
|
+
*/
|
|
98
|
+
isAdvertised(settings = global_settings_const_1.DyNTS_global_settings.mcp_settings) {
|
|
99
|
+
if (this.exposure === mcp_tool_exposure_type_enum_1.DyNTS_McpToolExposure_Type.none) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return settings?.readOnly === true ? this.exposure === mcp_tool_exposure_type_enum_1.DyNTS_McpToolExposure_Type.readOnly : true;
|
|
103
|
+
}
|
|
104
|
+
/** Builds the construction error with a stable error code and the construction location. */
|
|
105
|
+
static invalid(code, reason, stackLocation) {
|
|
106
|
+
return new fsm_dynamo_1.DyFM_Error({
|
|
107
|
+
status: 500,
|
|
108
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|${code}`,
|
|
109
|
+
message: `DyNTS_McpTool_Params construction failed: ${reason}`,
|
|
110
|
+
additionalContent: { stackLocation: stackLocation },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.DyNTS_McpTool_Params = DyNTS_McpTool_Params;
|
|
115
|
+
//# sourceMappingURL=mcp-tool-params.control-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-params.control-model.js","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/control-models/mcp-tool-params.control-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-wide MCP defaults (`DyNTS_global_settings.mcp_settings`, HP-DOPL MP-3.2). `null` (the default) means every
|
|
3
|
+
* field below takes its documented default.
|
|
4
|
+
*/
|
|
5
|
+
export interface DyNTS_Mcp_Settings {
|
|
6
|
+
/** Prepended to every generated tool name (e.g. `organizer.` → `organizer.notes.get`); default: none. */
|
|
7
|
+
toolPrefix?: string;
|
|
8
|
+
/** A read-only MCP server advertises only `read-only` tools; default: `false`. */
|
|
9
|
+
readOnly?: boolean;
|
|
10
|
+
/** How many HEAVY tool calls may run at once (DMCP-013 serialization); default: `1`. */
|
|
11
|
+
heavyToolConcurrency?: number;
|
|
12
|
+
/** Reject a HEAVY tool call with 503 while the memory guard reports critical pressure (DMCP-013); default: `true`. */
|
|
13
|
+
shedHeavyToolsUnderMemoryPressure?: boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=mcp-settings.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-settings.interface.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/mcp-settings.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sHAAsH;IACtH,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-settings.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/mcp-settings.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
export * from './_enums/mcp-tool-exposure.type-enum';
|
|
1
2
|
export * from './_models/interfaces/dynts-mcp.interface';
|
|
3
|
+
export * from './_models/interfaces/mcp-settings.interface';
|
|
4
|
+
export * from './_models/control-models/mcp-tool-params.control-model';
|
|
5
|
+
export * from './_collections/mcp-tool-load.util';
|
|
2
6
|
export * from './_services/dynts-mcp.adapter';
|
|
3
7
|
export * from './_services/mcp-server.service-base';
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":"AAQA,cAAc,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":"AAQA,cAAc,sCAAsC,CAAC;AAGrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAG5D,cAAc,wDAAwD,CAAC;AAGvE,cAAc,mCAAmC,CAAC;AAGlD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC"}
|
|
@@ -5,8 +5,15 @@
|
|
|
5
5
|
// domain-tool-t). A SDK KIZÁRÓLAG a `DyNTS_Mcp_Adapter` mögött él (transport-csere NON-breaking).
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const tslib_1 = require("tslib");
|
|
8
|
+
// ENUMS
|
|
9
|
+
tslib_1.__exportStar(require("./_enums/mcp-tool-exposure.type-enum"), exports);
|
|
8
10
|
// INTERFACES
|
|
9
11
|
tslib_1.__exportStar(require("./_models/interfaces/dynts-mcp.interface"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./_models/interfaces/mcp-settings.interface"), exports);
|
|
13
|
+
// CONTROL MODELS
|
|
14
|
+
tslib_1.__exportStar(require("./_models/control-models/mcp-tool-params.control-model"), exports);
|
|
15
|
+
// COLLECTIONS
|
|
16
|
+
tslib_1.__exportStar(require("./_collections/mcp-tool-load.util"), exports);
|
|
10
17
|
// SERVICES
|
|
11
18
|
tslib_1.__exportStar(require("./_services/dynts-mcp.adapter"), exports);
|
|
12
19
|
tslib_1.__exportStar(require("./_services/mcp-server.service-base"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":";AAEA,iGAAiG;AACjG,6FAA6F;AAC7F,4GAA4G;AAC5G,kGAAkG;;;AAElG,aAAa;AACb,mFAAyD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":";AAEA,iGAAiG;AACjG,6FAA6F;AAC7F,4GAA4G;AAC5G,kGAAkG;;;AAElG,QAAQ;AACR,+EAAqD;AAErD,aAAa;AACb,mFAAyD;AACzD,sFAA4D;AAE5D,iBAAiB;AACjB,iGAAuE;AAEvE,cAAc;AACd,4EAAkD;AAElD,WAAW;AACX,wEAA8C;AAC9C,8EAAoD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.294",
|
|
4
4
|
"description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "server-package",
|