@futdevpro/nts-dynamo 1.15.57 → 1.15.60
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/.dynamo/logs/cicd-pipeline/output.log +1637 -3567
- package/.dynamo/logs/cicd-pipeline/status.json +42 -344
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts +110 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.d.ts.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js +419 -0
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.js.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts +50 -0
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.d.ts.map +1 -0
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js +3 -0
- package/build/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.js.map +1 -0
- package/build/_modules/ai/_modules/document-ai/index.d.ts +2 -0
- package/build/_modules/ai/_modules/document-ai/index.d.ts.map +1 -1
- package/build/_modules/ai/_modules/document-ai/index.js +2 -0
- package/build/_modules/ai/_modules/document-ai/index.js.map +1 -1
- package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts +81 -0
- package/build/_modules/ai/_services/ai-embedding-mock.service.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-embedding-mock.service.js +167 -0
- package/build/_modules/ai/_services/ai-embedding-mock.service.js.map +1 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts +52 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.d.ts.map +1 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.js +79 -0
- package/build/_modules/ai/_services/ai-embedding-provider.registry.js.map +1 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts +111 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.d.ts.map +1 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.js +298 -0
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.js.map +1 -0
- package/build/_modules/ai/index.d.ts +5 -0
- package/build/_modules/ai/index.d.ts.map +1 -1
- package/build/_modules/ai/index.js +8 -0
- package/build/_modules/ai/index.js.map +1 -1
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts +59 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.d.ts.map +1 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js +169 -0
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.js.map +1 -0
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts +32 -0
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.d.ts.map +1 -0
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js +8 -0
- package/build/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.js.map +1 -0
- package/build/_modules/data-readers/index.d.ts +3 -0
- package/build/_modules/data-readers/index.d.ts.map +1 -0
- package/build/_modules/data-readers/index.js +11 -0
- package/build/_modules/data-readers/index.js.map +1 -0
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts +36 -0
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js +54 -0
- package/build/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts +70 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js +123 -0
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.js.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts +43 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.d.ts.map +1 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js +72 -0
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.js.map +1 -0
- package/build/_modules/local-vector-search/index.d.ts +3 -0
- package/build/_modules/local-vector-search/index.d.ts.map +1 -1
- package/build/_modules/local-vector-search/index.js +4 -0
- package/build/_modules/local-vector-search/index.js.map +1 -1
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts +109 -0
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.d.ts.map +1 -0
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js +14 -0
- package/build/_modules/mcp/_models/interfaces/dynts-mcp.interface.js.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts +71 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.d.ts.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js +99 -0
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.js.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +57 -0
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -0
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js +139 -0
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -0
- package/build/_modules/mcp/index.d.ts +4 -0
- package/build/_modules/mcp/index.d.ts.map +1 -0
- package/build/_modules/mcp/index.js +13 -0
- package/build/_modules/mcp/index.js.map +1 -0
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts +19 -0
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.d.ts.map +1 -0
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js +23 -0
- package/build/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.js.map +1 -0
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts +44 -0
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts.map +1 -0
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js +68 -0
- package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js.map +1 -0
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts +89 -0
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.d.ts.map +1 -0
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js +12 -0
- package/build/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.js.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts +84 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.d.ts.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js +220 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.js.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts +54 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.d.ts.map +1 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js +76 -0
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.js.map +1 -0
- package/build/_modules/scoped-config/index.d.ts +6 -0
- package/build/_modules/scoped-config/index.d.ts.map +1 -0
- package/build/_modules/scoped-config/index.js +15 -0
- package/build/_modules/scoped-config/index.js.map +1 -0
- package/package.json +58 -2
- package/pnpm-workspace.yaml +1 -0
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -0
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +552 -0
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -0
- package/src/_modules/ai/_modules/document-ai/index.ts +2 -0
- package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -0
- package/src/_modules/ai/_services/ai-embedding-mock.service.ts +233 -0
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -0
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -0
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -0
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +399 -0
- package/src/_modules/ai/index.ts +10 -0
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +176 -0
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -0
- package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -0
- package/src/_modules/data-readers/index.ts +11 -0
- package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +60 -0
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -0
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +150 -0
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -0
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +108 -0
- package/src/_modules/local-vector-search/index.ts +6 -1
- package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -0
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +151 -0
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +125 -0
- package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -0
- package/src/_modules/mcp/index.ts +13 -0
- package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -0
- package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +82 -0
- package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -0
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +312 -0
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +311 -0
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +123 -0
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +108 -0
- package/src/_modules/scoped-config/index.ts +17 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP-réteg shared vokabulár (BFR-AM-003) — a domain-agnosztikus MCP-szerver-base + adaptor közös
|
|
4
|
+
* típusai. Egy fájlban a szorosan összetartozó tool-/transport-típusok (`*.interface.ts` az
|
|
5
|
+
* egy-export-per-file konvenció ismert kivétele a tightly-coupled shape-ekre).
|
|
6
|
+
*
|
|
7
|
+
* Boundary: a `DyNTS_McpToolDefinition` + a `DyNTS_Mcp_Adapter` egyetlen `registerTool` choke-pontot
|
|
8
|
+
* ad — a hivatalos `@modelcontextprotocol/sdk` KIZÁRÓLAG az adaptor mögött él, így egy jövőbeli
|
|
9
|
+
* transport-/SDK-csere NEM-breaking (csak az adaptor cserélődik, a `DyNTS_Mcp_Server_ServiceBase` + a
|
|
10
|
+
* consumer-tool-ok változatlanok). A consumer a SAJÁT tool-jait regisztrálja (a bedrock NEM definiál
|
|
11
|
+
* domain-tool-okat — csak a server-base + a transport + a registry).
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
//# sourceMappingURL=dynts-mcp.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-mcp.interface.js","sourceRoot":"","sources":["../../../../../src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { DyNTS_Mcp_CallResult, DyNTS_Mcp_ServerInfo, DyNTS_Mcp_StartOptions, DyNTS_Mcp_ToolDefinition } from '../_models/interfaces/dynts-mcp.interface';
|
|
2
|
+
import { DyNTS_Mcp_Adapter } from './dynts-mcp.adapter';
|
|
3
|
+
/**
|
|
4
|
+
* `DyNTS_Mcp_Server_ServiceBase` (BFR-AM-003) — a **domain-agnosztikus** MCP-szerver-base. Egy bedrock-réteg
|
|
5
|
+
* a hivatalos `@modelcontextprotocol/sdk` fölött: a server-base felel a tool-registry-ért, a
|
|
6
|
+
* `tools/list`/`tools/call` dispatch-ért (az adaptoron át) + a transport-indításért — a SDK KIZÁRÓLAG
|
|
7
|
+
* a `DyNTS_Mcp_Adapter` mögött él (egy jövőbeli transport-/SDK-csere NON-breaking).
|
|
8
|
+
*
|
|
9
|
+
* **Használat (consumer):** a consumer leszármazik (`extends DyNTS_Mcp_Server_ServiceBase`) + implementálja a
|
|
10
|
+
* `getServerInfo()` (név/verzió) és `getTools()` (a SAJÁT tool-jai) abstract metódusokat. A bedrock
|
|
11
|
+
* SEMMILYEN domain-tool-t NEM definiál — csak a server-base + a transport + a registry. (Pl. a FAM a
|
|
12
|
+
* `read`/`write`/`capabilities` tool-jait itt regisztrálja, a bedrock-on kívül.)
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* class My_McpServer extends DyNTS_Mcp_Server_ServiceBase {
|
|
16
|
+
* protected getServerInfo() { return { name: 'my-app', version: '1.0.0' }; }
|
|
17
|
+
* protected getTools() { return [readTool, writeTool]; }
|
|
18
|
+
* }
|
|
19
|
+
* await new My_McpServer().start({ transport: 'stdio' });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — a boot-üzenet + minden log a stderr-re megy (a
|
|
23
|
+
* hívó App a `DyFM_Log`-ot stdio-módban stderr-re konfigurálja).
|
|
24
|
+
*/
|
|
25
|
+
export declare abstract class DyNTS_Mcp_Server_ServiceBase {
|
|
26
|
+
/** Az MCP-adaptor (a regisztrált tool-ok + a transport mögötti SDK-réteg). Lazy a `build()`-ben. */
|
|
27
|
+
private adapter;
|
|
28
|
+
/**
|
|
29
|
+
* A szerver identitása (név/verzió) — a consumer adja. A SDK `serverInfo`-jaként hirdetődik.
|
|
30
|
+
*/
|
|
31
|
+
protected abstract getServerInfo(): DyNTS_Mcp_ServerInfo;
|
|
32
|
+
/**
|
|
33
|
+
* A consumer SAJÁT tool-definíciói (az advertised halmaz). A `build()` ezeket regisztrálja az
|
|
34
|
+
* adaptoron át — a `tools/list` PONTOSAN ezeket hirdeti, a `tools/call` ezekre dispatch-el.
|
|
35
|
+
*/
|
|
36
|
+
protected abstract getTools(): DyNTS_Mcp_ToolDefinition[];
|
|
37
|
+
/**
|
|
38
|
+
* A szerver felépítése (a consumer-tool-ok regisztrálása az adaptoron). NEM indítja a transportot
|
|
39
|
+
* — a `start()` teszi. Külön lépés a contract-teszt kedvéért (a szerver felépül + a tool-okat
|
|
40
|
+
* hirdeti, transport nélkül). Idempotens: ismételt hívás ugyanazt az adaptort adja vissza.
|
|
41
|
+
*/
|
|
42
|
+
build(): DyNTS_Mcp_Adapter;
|
|
43
|
+
/**
|
|
44
|
+
* Az MCP-szerver indítása a választott transporton (default `stdio`). Felépíti a szervert (ha még
|
|
45
|
+
* nem), majd a transportot csatlakoztatja — innentől a `tools/list` a consumer-tool-okat hirdeti,
|
|
46
|
+
* a `tools/call` route-ol. A boot-üzenet a stderr-en.
|
|
47
|
+
*/
|
|
48
|
+
start(options?: DyNTS_Mcp_StartOptions): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* A felépített tool-nevek (a contract/diszjunkció-teszthez). Build előtt a deklarált `getTools()`
|
|
51
|
+
* neveit adja (transport nélkül is determinisztikus).
|
|
52
|
+
*/
|
|
53
|
+
getAdvertisedToolNames(): string[];
|
|
54
|
+
/**
|
|
55
|
+
* Egy tool KÖZVETLEN hívása (a transport megkerülésével) — a contract-teszthez / REST-paritáshoz.
|
|
56
|
+
* Felépíti a szervert (ha még nem), majd az adaptor egységes dispatch-ét futtatja (ismeretlen
|
|
57
|
+
* tool → strukturált hiba; handler-hiba → `isError:true`).
|
|
58
|
+
*/
|
|
59
|
+
callTool(set: {
|
|
60
|
+
name: string;
|
|
61
|
+
arguments?: unknown;
|
|
62
|
+
}): Promise<DyNTS_Mcp_CallResult>;
|
|
63
|
+
/** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
|
|
64
|
+
close(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* A transport-indítás dispatch-e. Külön metódus, hogy egy jövőbeli transport (http/sse) NON-breaking
|
|
67
|
+
* módon bővíthető legyen (a `start()` + a registry változatlan). MVP: csak `stdio`.
|
|
68
|
+
*/
|
|
69
|
+
private startTransport;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=dynts-mcp-server.service-base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-mcp-server.service-base.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp-server.service-base.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,8BAAsB,4BAA4B;IAEhD,oGAAoG;IACpG,OAAO,CAAC,OAAO,CAAkC;IAE/C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,oBAAoB;IAExD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,wBAAwB,EAAE;IAEzD;;;;OAIG;IACI,KAAK,IAAI,iBAAiB;IAcjC;;;;OAIG;IACU,KAAK,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;;OAGG;IACI,sBAAsB,IAAI,MAAM,EAAE;IAMzC;;;;OAIG;IACU,QAAQ,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIhG,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC;;;OAGG;YACW,cAAc;CAY/B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_Mcp_Server_ServiceBase = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const dynts_mcp_adapter_1 = require("./dynts-mcp.adapter");
|
|
6
|
+
/**
|
|
7
|
+
* `DyNTS_Mcp_Server_ServiceBase` (BFR-AM-003) — a **domain-agnosztikus** MCP-szerver-base. Egy bedrock-réteg
|
|
8
|
+
* a hivatalos `@modelcontextprotocol/sdk` fölött: a server-base felel a tool-registry-ért, a
|
|
9
|
+
* `tools/list`/`tools/call` dispatch-ért (az adaptoron át) + a transport-indításért — a SDK KIZÁRÓLAG
|
|
10
|
+
* a `DyNTS_Mcp_Adapter` mögött él (egy jövőbeli transport-/SDK-csere NON-breaking).
|
|
11
|
+
*
|
|
12
|
+
* **Használat (consumer):** a consumer leszármazik (`extends DyNTS_Mcp_Server_ServiceBase`) + implementálja a
|
|
13
|
+
* `getServerInfo()` (név/verzió) és `getTools()` (a SAJÁT tool-jai) abstract metódusokat. A bedrock
|
|
14
|
+
* SEMMILYEN domain-tool-t NEM definiál — csak a server-base + a transport + a registry. (Pl. a FAM a
|
|
15
|
+
* `read`/`write`/`capabilities` tool-jait itt regisztrálja, a bedrock-on kívül.)
|
|
16
|
+
*
|
|
17
|
+
* ```ts
|
|
18
|
+
* class My_McpServer extends DyNTS_Mcp_Server_ServiceBase {
|
|
19
|
+
* protected getServerInfo() { return { name: 'my-app', version: '1.0.0' }; }
|
|
20
|
+
* protected getTools() { return [readTool, writeTool]; }
|
|
21
|
+
* }
|
|
22
|
+
* await new My_McpServer().start({ transport: 'stdio' });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — a boot-üzenet + minden log a stderr-re megy (a
|
|
26
|
+
* hívó App a `DyFM_Log`-ot stdio-módban stderr-re konfigurálja).
|
|
27
|
+
*/
|
|
28
|
+
class DyNTS_Mcp_Server_ServiceBase {
|
|
29
|
+
/** Az MCP-adaptor (a regisztrált tool-ok + a transport mögötti SDK-réteg). Lazy a `build()`-ben. */
|
|
30
|
+
adapter = null;
|
|
31
|
+
/**
|
|
32
|
+
* A szerver felépítése (a consumer-tool-ok regisztrálása az adaptoron). NEM indítja a transportot
|
|
33
|
+
* — a `start()` teszi. Külön lépés a contract-teszt kedvéért (a szerver felépül + a tool-okat
|
|
34
|
+
* hirdeti, transport nélkül). Idempotens: ismételt hívás ugyanazt az adaptort adja vissza.
|
|
35
|
+
*/
|
|
36
|
+
build() {
|
|
37
|
+
if (this.adapter) {
|
|
38
|
+
return this.adapter;
|
|
39
|
+
}
|
|
40
|
+
const adapter = new dynts_mcp_adapter_1.DyNTS_Mcp_Adapter(this.getServerInfo());
|
|
41
|
+
for (const tool of this.getTools()) {
|
|
42
|
+
adapter.registerTool(tool);
|
|
43
|
+
}
|
|
44
|
+
this.adapter = adapter;
|
|
45
|
+
return adapter;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Az MCP-szerver indítása a választott transporton (default `stdio`). Felépíti a szervert (ha még
|
|
49
|
+
* nem), majd a transportot csatlakoztatja — innentől a `tools/list` a consumer-tool-okat hirdeti,
|
|
50
|
+
* a `tools/call` route-ol. A boot-üzenet a stderr-en.
|
|
51
|
+
*/
|
|
52
|
+
async start(options) {
|
|
53
|
+
const transport = options?.transport ?? 'stdio';
|
|
54
|
+
const adapter = this.build();
|
|
55
|
+
const info = this.getServerInfo();
|
|
56
|
+
fsm_dynamo_1.DyFM_Log.testInfo(`[DyNTS MCP] ${transport} server starting (${info.name} v${info.version}); `
|
|
57
|
+
+ `advertised tools: ${adapter.getAdvertisedToolNames().join(', ')}`);
|
|
58
|
+
await this.startTransport(adapter, transport);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A felépített tool-nevek (a contract/diszjunkció-teszthez). Build előtt a deklarált `getTools()`
|
|
62
|
+
* neveit adja (transport nélkül is determinisztikus).
|
|
63
|
+
*/
|
|
64
|
+
getAdvertisedToolNames() {
|
|
65
|
+
return this.adapter
|
|
66
|
+
? this.adapter.getAdvertisedToolNames()
|
|
67
|
+
: this.getTools().map((tool) => tool.name);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Egy tool KÖZVETLEN hívása (a transport megkerülésével) — a contract-teszthez / REST-paritáshoz.
|
|
71
|
+
* Felépíti a szervert (ha még nem), majd az adaptor egységes dispatch-ét futtatja (ismeretlen
|
|
72
|
+
* tool → strukturált hiba; handler-hiba → `isError:true`).
|
|
73
|
+
*/
|
|
74
|
+
async callTool(set) {
|
|
75
|
+
return this.build().dispatchToolCall(set);
|
|
76
|
+
}
|
|
77
|
+
/** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
|
|
78
|
+
async close() {
|
|
79
|
+
if (this.adapter) {
|
|
80
|
+
await this.adapter.close();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* A transport-indítás dispatch-e. Külön metódus, hogy egy jövőbeli transport (http/sse) NON-breaking
|
|
85
|
+
* módon bővíthető legyen (a `start()` + a registry változatlan). MVP: csak `stdio`.
|
|
86
|
+
*/
|
|
87
|
+
async startTransport(adapter, transport) {
|
|
88
|
+
switch (transport) {
|
|
89
|
+
case 'stdio':
|
|
90
|
+
await adapter.startStdio();
|
|
91
|
+
return;
|
|
92
|
+
default:
|
|
93
|
+
// Exhaustiveness-guard: a `DyNTS_Mcp_TransportKind` bővülésekor itt fordítási hibát kapunk.
|
|
94
|
+
throw new Error(`Unsupported MCP transport: '${transport}'.`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.DyNTS_Mcp_Server_ServiceBase = DyNTS_Mcp_Server_ServiceBase;
|
|
99
|
+
//# sourceMappingURL=dynts-mcp-server.service-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-mcp-server.service-base.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp-server.service-base.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAQjD,2DAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAsB,4BAA4B;IAEhD,oGAAoG;IAC5F,OAAO,GAA6B,IAAI,CAAC;IAa/C;;;;OAIG;IACI,KAAK;QACV,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,MAAM,OAAO,GAAsB,IAAI,qCAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAE/E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,KAAK,CAAC,OAAgC;QACjD,MAAM,SAAS,GAAY,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC;QACzD,MAAM,OAAO,GAAsB,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,IAAI,GAAyB,IAAI,CAAC,aAAa,EAAE,CAAC;QAExD,qBAAQ,CAAC,QAAQ,CAAC,eAAe,SAAS,qBAAqB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,KAAK;cACtF,qBAAqB,OAAO,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,sBAAsB;QAC3B,OAAO,IAAI,CAAC,OAAO;YACjB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;YACvC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAC,GAA0C;QAC9D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,qEAAqE;IAC9D,KAAK,CAAC,KAAK;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,OAA0B,EAAE,SAAkB;QACzE,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,OAAO;gBACV,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAE3B,OAAO;YAET;gBACE,4FAA4F;gBAC5F,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAmB,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;CACJ;AA5FD,oEA4FC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { DyNTS_Mcp_CallResult, DyNTS_Mcp_ServerInfo, DyNTS_Mcp_ToolDefinition } from '../_models/interfaces/dynts-mcp.interface';
|
|
2
|
+
/**
|
|
3
|
+
* `DyNTS_Mcp_Adapter` (BFR-AM-003) — a hivatalos `@modelcontextprotocol/sdk` köré épített **vékony
|
|
4
|
+
* adaptor-réteg**. EZ az EGYETLEN hely a `/mcp` submodule-ban, ahol a SDK-típusok megjelennek — a
|
|
5
|
+
* `DyNTS_Mcp_Server_ServiceBase` + a consumer tool-jai SDK-mentesek, így egy jövőbeli transport-/SDK-csere
|
|
6
|
+
* NON-breaking (csak ez az osztály cserélődik).
|
|
7
|
+
*
|
|
8
|
+
* Felelősség (3 dolog, semmi domain-logika):
|
|
9
|
+
* 1. EGY `registerTool` choke-pont (a tool-name → def map),
|
|
10
|
+
* 2. a `tools/list` + `tools/call` JSON-RPC handler bekötése a SDK-szerverre,
|
|
11
|
+
* 3. egységes hiba-fordítás: a tool-handler dobott hibája (vagy `isError:true` outcome-ja)
|
|
12
|
+
* strukturált `CallToolResult { isError:true }`-tá fordul — SOHA nem néma, SOHA nem crash.
|
|
13
|
+
*
|
|
14
|
+
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — az adaptor maga SEMMIT nem ír a stdout-ra a
|
|
15
|
+
* transport-payload-on kívül (minden log/diag a hívó App felelőssége, stderr-re).
|
|
16
|
+
*/
|
|
17
|
+
export declare class DyNTS_Mcp_Adapter {
|
|
18
|
+
/** A SDK MCP-szerver (a transport-agnosztikus protocol-réteg). */
|
|
19
|
+
private readonly server;
|
|
20
|
+
/** A regisztrált tool-definíciók `name` → def map-je (a `tools/call` dispatch-hez). */
|
|
21
|
+
private readonly tools;
|
|
22
|
+
constructor(set: DyNTS_Mcp_ServerInfo);
|
|
23
|
+
/**
|
|
24
|
+
* Az EGYETLEN tool-regisztrációs choke-pont. A regisztrált tool-ok hirdetődnek a `tools/list`-ben
|
|
25
|
+
* és dispatch-elhetők a `tools/call`-on. Az azonos nevű ismételt regisztráció felülír (last-wins).
|
|
26
|
+
*/
|
|
27
|
+
registerTool(definition: DyNTS_Mcp_ToolDefinition): void;
|
|
28
|
+
/** A hirdetett (regisztrált) tool-nevek (a contract/diszjunkció-teszthez). */
|
|
29
|
+
getAdvertisedToolNames(): string[];
|
|
30
|
+
/**
|
|
31
|
+
* A stdio transport csatlakoztatása + a szerver indítása. A `connect` után a `tools/list` a
|
|
32
|
+
* regisztrált tool-okat hirdeti. A boot-üzenetek a stderr-en (a hívó App felel).
|
|
33
|
+
*/
|
|
34
|
+
startStdio(): Promise<void>;
|
|
35
|
+
/** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
|
|
36
|
+
close(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Egy tool-hívás KÖZVETLEN dispatch-elése (a transport-megkerülésével) — a contract/registry-teszt
|
|
39
|
+
* ezt hívja a stdio-szerver indítása nélkül. Ugyanaz a logika fut, mint a SDK `tools/call`-on:
|
|
40
|
+
* ismeretlen tool → strukturált hiba; handler-hiba → `isError:true` fordítás.
|
|
41
|
+
*/
|
|
42
|
+
dispatchToolCall(set: {
|
|
43
|
+
name: string;
|
|
44
|
+
arguments?: unknown;
|
|
45
|
+
}): Promise<DyNTS_Mcp_CallResult>;
|
|
46
|
+
/** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
|
|
47
|
+
private installHandlers;
|
|
48
|
+
/** Egy sikeres (vagy strukturált-hiba) handler-outcome → `CallToolResult` (text-JSON content). */
|
|
49
|
+
private toCallResult;
|
|
50
|
+
/** Egy hiba → `CallToolResult { isError:true }` strukturált hiba-payload-dal (soha nem néma). */
|
|
51
|
+
private errorResult;
|
|
52
|
+
/** Egy hiba ember-olvasható üzenete (DyFM_Error → message; Error → message; egyéb → fallback). */
|
|
53
|
+
private describeError;
|
|
54
|
+
/** JSON-stringify (a transport text-content payload-ja); szerializálás-hiba → strukturált hiba. */
|
|
55
|
+
private stringify;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=dynts-mcp.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-mcp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,2CAA2C,CAAC;AAEnD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAE5B,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,KAAK,CACwB;gBAElC,GAAG,EAAE,oBAAoB;IAQrC;;;SAGK;IACE,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,IAAI;IAI/D,8EAA8E;IACvE,sBAAsB,IAAI,MAAM,EAAE;IAIzC;;;SAGK;IACQ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;;;SAIK;IACQ,gBAAgB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBxG,kFAAkF;IAClF,OAAO,CAAC,eAAe;IAwBvB,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAOpB,iGAAiG;IACjG,OAAO,CAAC,WAAW;IASnB,kGAAkG;IAClG,OAAO,CAAC,aAAa;IAYrB,mGAAmG;IACnG,OAAO,CAAC,SAAS;CAOlB"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_Mcp_Adapter = void 0;
|
|
4
|
+
// A `@modelcontextprotocol/sdk` ESM-only csomag; a deep subpath-importjai (server/index, server/stdio,
|
|
5
|
+
// types) KÖTELEZŐEN `.js`-suffixet igényelnek (az SDK `exports`-map így oldja fel) — ezért a `no-js-import`
|
|
6
|
+
// szabály ITT indokoltan kikapcsolva (C2, FAM-REV bedrock-fix). Suffix-strip → resolve-hiba.
|
|
7
|
+
/* eslint-disable @futdevpro/dynamo/no-js-import */
|
|
8
|
+
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
9
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
10
|
+
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
11
|
+
/* eslint-enable @futdevpro/dynamo/no-js-import */
|
|
12
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
13
|
+
/**
|
|
14
|
+
* `DyNTS_Mcp_Adapter` (BFR-AM-003) — a hivatalos `@modelcontextprotocol/sdk` köré épített **vékony
|
|
15
|
+
* adaptor-réteg**. EZ az EGYETLEN hely a `/mcp` submodule-ban, ahol a SDK-típusok megjelennek — a
|
|
16
|
+
* `DyNTS_Mcp_Server_ServiceBase` + a consumer tool-jai SDK-mentesek, így egy jövőbeli transport-/SDK-csere
|
|
17
|
+
* NON-breaking (csak ez az osztály cserélődik).
|
|
18
|
+
*
|
|
19
|
+
* Felelősség (3 dolog, semmi domain-logika):
|
|
20
|
+
* 1. EGY `registerTool` choke-pont (a tool-name → def map),
|
|
21
|
+
* 2. a `tools/list` + `tools/call` JSON-RPC handler bekötése a SDK-szerverre,
|
|
22
|
+
* 3. egységes hiba-fordítás: a tool-handler dobott hibája (vagy `isError:true` outcome-ja)
|
|
23
|
+
* strukturált `CallToolResult { isError:true }`-tá fordul — SOHA nem néma, SOHA nem crash.
|
|
24
|
+
*
|
|
25
|
+
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — az adaptor maga SEMMIT nem ír a stdout-ra a
|
|
26
|
+
* transport-payload-on kívül (minden log/diag a hívó App felelőssége, stderr-re).
|
|
27
|
+
*/
|
|
28
|
+
class DyNTS_Mcp_Adapter {
|
|
29
|
+
/** A SDK MCP-szerver (a transport-agnosztikus protocol-réteg). */
|
|
30
|
+
server;
|
|
31
|
+
/** A regisztrált tool-definíciók `name` → def map-je (a `tools/call` dispatch-hez). */
|
|
32
|
+
tools = new Map();
|
|
33
|
+
constructor(set) {
|
|
34
|
+
this.server = new index_js_1.Server({ name: set.name, version: set.version }, { capabilities: { tools: {} } });
|
|
35
|
+
this.installHandlers();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Az EGYETLEN tool-regisztrációs choke-pont. A regisztrált tool-ok hirdetődnek a `tools/list`-ben
|
|
39
|
+
* és dispatch-elhetők a `tools/call`-on. Az azonos nevű ismételt regisztráció felülír (last-wins).
|
|
40
|
+
*/
|
|
41
|
+
registerTool(definition) {
|
|
42
|
+
this.tools.set(definition.name, definition);
|
|
43
|
+
}
|
|
44
|
+
/** A hirdetett (regisztrált) tool-nevek (a contract/diszjunkció-teszthez). */
|
|
45
|
+
getAdvertisedToolNames() {
|
|
46
|
+
return Array.from(this.tools.keys());
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A stdio transport csatlakoztatása + a szerver indítása. A `connect` után a `tools/list` a
|
|
50
|
+
* regisztrált tool-okat hirdeti. A boot-üzenetek a stderr-en (a hívó App felel).
|
|
51
|
+
*/
|
|
52
|
+
async startStdio() {
|
|
53
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
54
|
+
await this.server.connect(transport);
|
|
55
|
+
}
|
|
56
|
+
/** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
|
|
57
|
+
async close() {
|
|
58
|
+
await this.server.close();
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Egy tool-hívás KÖZVETLEN dispatch-elése (a transport-megkerülésével) — a contract/registry-teszt
|
|
62
|
+
* ezt hívja a stdio-szerver indítása nélkül. Ugyanaz a logika fut, mint a SDK `tools/call`-on:
|
|
63
|
+
* ismeretlen tool → strukturált hiba; handler-hiba → `isError:true` fordítás.
|
|
64
|
+
*/
|
|
65
|
+
async dispatchToolCall(set) {
|
|
66
|
+
const definition = this.tools.get(set.name);
|
|
67
|
+
if (!definition) {
|
|
68
|
+
return this.errorResult(`Unknown tool: '${set.name}'. Advertised tools: `
|
|
69
|
+
+ `${this.getAdvertisedToolNames().join(', ')}.`);
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const outcome = await definition.handler(set.arguments);
|
|
73
|
+
return this.toCallResult(outcome);
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
return this.errorResult(this.describeError(error), error);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// =========================================================================
|
|
80
|
+
// SDK request-handler bekötés (tools/list + tools/call)
|
|
81
|
+
// =========================================================================
|
|
82
|
+
/** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
|
|
83
|
+
installHandlers() {
|
|
84
|
+
// tools/list — PONTOSAN a regisztrált (advertised) tool-okat hirdeti.
|
|
85
|
+
this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
86
|
+
tools: Array.from(this.tools.values()).map((definition) => ({
|
|
87
|
+
name: definition.name,
|
|
88
|
+
description: definition.description,
|
|
89
|
+
inputSchema: definition.inputSchema,
|
|
90
|
+
})),
|
|
91
|
+
}));
|
|
92
|
+
// tools/call — a megfelelő handler futtatása + egységes hiba-fordítás (a közös dispatch-en át).
|
|
93
|
+
// A `DyNTS_Mcp_CallResult` a SDK `CallToolResult` egy al-shape-je (text-content + isError) — a
|
|
94
|
+
// SDK-cast KIZÁRÓLAG itt, az adaptor-boundary-n él (a SDK izolálva marad).
|
|
95
|
+
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => (await this.dispatchToolCall({
|
|
96
|
+
name: request.params.name,
|
|
97
|
+
arguments: request.params.arguments,
|
|
98
|
+
})));
|
|
99
|
+
}
|
|
100
|
+
// =========================================================================
|
|
101
|
+
// CallToolResult fordítás (a transport-payload — text-JSON; egységes hiba-fordítás)
|
|
102
|
+
// =========================================================================
|
|
103
|
+
/** Egy sikeres (vagy strukturált-hiba) handler-outcome → `CallToolResult` (text-JSON content). */
|
|
104
|
+
toCallResult(outcome) {
|
|
105
|
+
return {
|
|
106
|
+
content: [{ type: 'text', text: this.stringify(outcome.data) }],
|
|
107
|
+
isError: outcome.isError === true,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Egy hiba → `CallToolResult { isError:true }` strukturált hiba-payload-dal (soha nem néma). */
|
|
111
|
+
errorResult(message, error) {
|
|
112
|
+
const errorCode = error instanceof fsm_dynamo_1.DyFM_Error
|
|
113
|
+
? fsm_dynamo_1.DyFM_Error.getErrorCode(error)
|
|
114
|
+
: undefined;
|
|
115
|
+
const payload = { ok: false, error: { errorCode: errorCode, message: message } };
|
|
116
|
+
return { content: [{ type: 'text', text: this.stringify(payload) }], isError: true };
|
|
117
|
+
}
|
|
118
|
+
/** Egy hiba ember-olvasható üzenete (DyFM_Error → message; Error → message; egyéb → fallback). */
|
|
119
|
+
describeError(error) {
|
|
120
|
+
if (error instanceof fsm_dynamo_1.DyFM_Error) {
|
|
121
|
+
return fsm_dynamo_1.DyFM_Error.getErrorMessage(error) || 'Unknown DyFM error.';
|
|
122
|
+
}
|
|
123
|
+
if (error instanceof Error) {
|
|
124
|
+
return error.message;
|
|
125
|
+
}
|
|
126
|
+
return 'Unknown error during tool execution.';
|
|
127
|
+
}
|
|
128
|
+
/** JSON-stringify (a transport text-content payload-ja); szerializálás-hiba → strukturált hiba. */
|
|
129
|
+
stringify(data) {
|
|
130
|
+
try {
|
|
131
|
+
return JSON.stringify(data);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return JSON.stringify({ ok: false, error: { message: 'The response is not JSON-serializable.' } });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.DyNTS_Mcp_Adapter = DyNTS_Mcp_Adapter;
|
|
139
|
+
//# sourceMappingURL=dynts-mcp.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-mcp.adapter.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/mcp/index.ts"],"names":[],"mappings":"AAQA,cAAc,0CAA0C,CAAC;AAGzD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// MCP MODULE (BFR-AM-003) — domain-agnosztikus Model Context Protocol szerver-base + transport +
|
|
3
|
+
// tool-registry, a hivatalos `@modelcontextprotocol/sdk` köré izolált adaptorral. A consumer
|
|
4
|
+
// leszármazik a `DyNTS_Mcp_Server_ServiceBase`-ből + a SAJÁT tool-jait regisztrálja (a bedrock NEM definiál
|
|
5
|
+
// domain-tool-t). A SDK KIZÁRÓLAG a `DyNTS_Mcp_Adapter` mögött él (transport-csere NON-breaking).
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const tslib_1 = require("tslib");
|
|
8
|
+
// INTERFACES
|
|
9
|
+
tslib_1.__exportStar(require("./_models/interfaces/dynts-mcp.interface"), exports);
|
|
10
|
+
// SERVICES
|
|
11
|
+
tslib_1.__exportStar(require("./_services/dynts-mcp.adapter"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./_services/dynts-mcp-server.service-base"), exports);
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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;AAEzD,WAAW;AACX,wEAA8C;AAC9C,oFAA0D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DyNTS_ScopedConfig_Level` — a DB-backed scoped config feloldási-szintjei (BFR-AM-004).
|
|
3
|
+
*
|
|
4
|
+
* A precedencia: **scope (leaf→root) > table > global > builtin-default**. Egy `DyNTS_ScopedConfig`
|
|
5
|
+
* dokumentum mindig pontosan EGY szinten él; a `level` + `tableScope` + `scopeId` hármas adja a
|
|
6
|
+
* feloldási-kulcsot (a `key`-vel együtt a logikai unique-constraint).
|
|
7
|
+
*
|
|
8
|
+
* **Domain-agnosztikus:** a konkrét table-/scope-nevek a fogyasztó dolga; a bedrock csak a generikus
|
|
9
|
+
* precedencia-engine + a tárolás szintjeit definiálja (a katalógus/kulcsok NEM ide tartoznak).
|
|
10
|
+
*/
|
|
11
|
+
export declare enum DyNTS_ScopedConfig_Level {
|
|
12
|
+
/** Rendszer-szintű default (a legalacsonyabb precedencia a builtin felett). */
|
|
13
|
+
global = "global",
|
|
14
|
+
/** Egy adott logikai tár/táblázat szintje (`tableScope` kötelező). */
|
|
15
|
+
table = "table",
|
|
16
|
+
/** A legspecifikusabb szint: egy konkrét scope-entitás (`tableScope` + `scopeId` kötelező). */
|
|
17
|
+
scope = "scope"
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=dynts-scoped-config-level.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-scoped-config-level.enum.d.ts","sourceRoot":"","sources":["../../../../src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,oBAAY,wBAAwB;IAElC,+EAA+E;IAC/E,MAAM,WAAW;IAEjB,sEAAsE;IACtE,KAAK,UAAU;IAEf,+FAA+F;IAC/F,KAAK,UAAU;CAChB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_ScopedConfig_Level = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* `DyNTS_ScopedConfig_Level` — a DB-backed scoped config feloldási-szintjei (BFR-AM-004).
|
|
6
|
+
*
|
|
7
|
+
* A precedencia: **scope (leaf→root) > table > global > builtin-default**. Egy `DyNTS_ScopedConfig`
|
|
8
|
+
* dokumentum mindig pontosan EGY szinten él; a `level` + `tableScope` + `scopeId` hármas adja a
|
|
9
|
+
* feloldási-kulcsot (a `key`-vel együtt a logikai unique-constraint).
|
|
10
|
+
*
|
|
11
|
+
* **Domain-agnosztikus:** a konkrét table-/scope-nevek a fogyasztó dolga; a bedrock csak a generikus
|
|
12
|
+
* precedencia-engine + a tárolás szintjeit definiálja (a katalógus/kulcsok NEM ide tartoznak).
|
|
13
|
+
*/
|
|
14
|
+
var DyNTS_ScopedConfig_Level;
|
|
15
|
+
(function (DyNTS_ScopedConfig_Level) {
|
|
16
|
+
/** Rendszer-szintű default (a legalacsonyabb precedencia a builtin felett). */
|
|
17
|
+
DyNTS_ScopedConfig_Level["global"] = "global";
|
|
18
|
+
/** Egy adott logikai tár/táblázat szintje (`tableScope` kötelező). */
|
|
19
|
+
DyNTS_ScopedConfig_Level["table"] = "table";
|
|
20
|
+
/** A legspecifikusabb szint: egy konkrét scope-entitás (`tableScope` + `scopeId` kötelező). */
|
|
21
|
+
DyNTS_ScopedConfig_Level["scope"] = "scope";
|
|
22
|
+
})(DyNTS_ScopedConfig_Level || (exports.DyNTS_ScopedConfig_Level = DyNTS_ScopedConfig_Level = {}));
|
|
23
|
+
//# sourceMappingURL=dynts-scoped-config-level.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-scoped-config-level.enum.js","sourceRoot":"","sources":["../../../../src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts"],"names":[],"mappings":";;;AACA;;;;;;;;;GASG;AACH,IAAY,wBAUX;AAVD,WAAY,wBAAwB;IAElC,+EAA+E;IAC/E,6CAAiB,CAAA;IAEjB,sEAAsE;IACtE,2CAAe,CAAA;IAEf,+FAA+F;IAC/F,2CAAe,CAAA;AACjB,CAAC,EAVW,wBAAwB,wCAAxB,wBAAwB,QAUnC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DyFM_DataModel_Params, DyFM_Metadata } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
import { DyNTS_ScopedConfig_Level } from '../../_enums/dynts-scoped-config-level.enum';
|
|
3
|
+
/**
|
|
4
|
+
* `DyNTS_ScopedConfig` entitás (BFR-AM-004) — egy dokumentum = **egy setting-érték egy adott szinten**.
|
|
5
|
+
* A `level` + `tableScope` + `scopeId` hármas adja a feloldási-kulcsot (a `key`-vel együtt a logikai
|
|
6
|
+
* unique-constraint); a precedencia: **scope (leaf→root) > table > global > builtin-default**.
|
|
7
|
+
*
|
|
8
|
+
* `extends DyFM_Metadata`: az identitás/metadata (`_id`, `__created`, `__lastModified`, `_deleted`)
|
|
9
|
+
* az ősből jön; a `_deleted` soft-delete marker (Date), amit a `DyNTS_ArchiveDataService` kezel — ez
|
|
10
|
+
* a felülírás-history alapja (egy `set` a régi aktív rekordot archiválja, az újat aktívan írja).
|
|
11
|
+
*
|
|
12
|
+
* **Domain-agnosztikus:** a `key` `string`, a `value` `unknown` (Mongoose `Mixed`, séma-szinten
|
|
13
|
+
* `type:'object'`). A bedrock NEM validál séma-szinten — a típushelyesség / katalógus a FOGYASZTÓ
|
|
14
|
+
* dolga. A `value` írása **`$set`-tel atomikus** (Mongoose Mixed silent-drop ellen — lásd
|
|
15
|
+
* `DyNTS_ScopedConfig_DataService.setValue`).
|
|
16
|
+
*/
|
|
17
|
+
export declare class DyNTS_ScopedConfig extends DyFM_Metadata {
|
|
18
|
+
/** A feloldási-szint (`global`|`table`|`scope`). */
|
|
19
|
+
level?: DyNTS_ScopedConfig_Level;
|
|
20
|
+
/** `level='table'|'scope'` esetén kötelező: melyik logikai tár. */
|
|
21
|
+
tableScope?: string;
|
|
22
|
+
/** `level='scope'` esetén kötelező: a scope-entitás logikai azonosítója. */
|
|
23
|
+
scopeId?: string;
|
|
24
|
+
/** A config-kulcs (a fogyasztó katalógusából; string-ként perzistált). */
|
|
25
|
+
key?: string;
|
|
26
|
+
/** A setting-érték; típusa a fogyasztó katalógusa szerint. Mongoose `Mixed`. */
|
|
27
|
+
value?: unknown;
|
|
28
|
+
/** Ki/mi állította be (audit). */
|
|
29
|
+
setBy?: string;
|
|
30
|
+
/** Beállítás-részlet (pl. preset-név, CLI-user). */
|
|
31
|
+
setByDetail?: string;
|
|
32
|
+
/** Opcionális indoklás. */
|
|
33
|
+
note?: string;
|
|
34
|
+
constructor(set?: Partial<DyNTS_ScopedConfig>);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* MongoDB data-params a `dynts_scoped_config` collection-höz (BFR-AM-004). `addArchive: true` → a
|
|
38
|
+
* felülírt (régi) értékek soft-delete-elve megőrződnek (audit-trail / history).
|
|
39
|
+
*
|
|
40
|
+
* A `value` `type:'object'` (Mongoose `Mixed`) — a séma NEM validál; a típushelyesség a fogyasztó
|
|
41
|
+
* katalógusának + set-kori validációjának dolga.
|
|
42
|
+
*/
|
|
43
|
+
export declare const DyNTS_scopedConfig_dataParams: DyFM_DataModel_Params<DyNTS_ScopedConfig>;
|
|
44
|
+
//# sourceMappingURL=dynts-scoped-config.data-model.d.ts.map
|
package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-scoped-config.data-model.d.ts","sourceRoot":"","sources":["../../../../../src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IAInD,oDAAoD;IACpD,KAAK,CAAC,EAAE,wBAAwB,CAAC;IAEjC,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,gFAAgF;IAChF,KAAK,CAAC,EAAE,OAAO,CAAC;IAIhB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,GAAG,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAO9C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBAAqB,CAAC,kBAAkB,CAchF,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_scopedConfig_dataParams = exports.DyNTS_ScopedConfig = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
/**
|
|
6
|
+
* `DyNTS_ScopedConfig` entitás (BFR-AM-004) — egy dokumentum = **egy setting-érték egy adott szinten**.
|
|
7
|
+
* A `level` + `tableScope` + `scopeId` hármas adja a feloldási-kulcsot (a `key`-vel együtt a logikai
|
|
8
|
+
* unique-constraint); a precedencia: **scope (leaf→root) > table > global > builtin-default**.
|
|
9
|
+
*
|
|
10
|
+
* `extends DyFM_Metadata`: az identitás/metadata (`_id`, `__created`, `__lastModified`, `_deleted`)
|
|
11
|
+
* az ősből jön; a `_deleted` soft-delete marker (Date), amit a `DyNTS_ArchiveDataService` kezel — ez
|
|
12
|
+
* a felülírás-history alapja (egy `set` a régi aktív rekordot archiválja, az újat aktívan írja).
|
|
13
|
+
*
|
|
14
|
+
* **Domain-agnosztikus:** a `key` `string`, a `value` `unknown` (Mongoose `Mixed`, séma-szinten
|
|
15
|
+
* `type:'object'`). A bedrock NEM validál séma-szinten — a típushelyesség / katalógus a FOGYASZTÓ
|
|
16
|
+
* dolga. A `value` írása **`$set`-tel atomikus** (Mongoose Mixed silent-drop ellen — lásd
|
|
17
|
+
* `DyNTS_ScopedConfig_DataService.setValue`).
|
|
18
|
+
*/
|
|
19
|
+
class DyNTS_ScopedConfig extends fsm_dynamo_1.DyFM_Metadata {
|
|
20
|
+
// --- a feloldási kulcs ---
|
|
21
|
+
/** A feloldási-szint (`global`|`table`|`scope`). */
|
|
22
|
+
level;
|
|
23
|
+
/** `level='table'|'scope'` esetén kötelező: melyik logikai tár. */
|
|
24
|
+
tableScope;
|
|
25
|
+
/** `level='scope'` esetén kötelező: a scope-entitás logikai azonosítója. */
|
|
26
|
+
scopeId;
|
|
27
|
+
// --- a setting maga ---
|
|
28
|
+
/** A config-kulcs (a fogyasztó katalógusából; string-ként perzistált). */
|
|
29
|
+
key;
|
|
30
|
+
/** A setting-érték; típusa a fogyasztó katalógusa szerint. Mongoose `Mixed`. */
|
|
31
|
+
value;
|
|
32
|
+
// --- audit ---
|
|
33
|
+
/** Ki/mi állította be (audit). */
|
|
34
|
+
setBy;
|
|
35
|
+
/** Beállítás-részlet (pl. preset-név, CLI-user). */
|
|
36
|
+
setByDetail;
|
|
37
|
+
/** Opcionális indoklás. */
|
|
38
|
+
note;
|
|
39
|
+
constructor(set) {
|
|
40
|
+
super(set);
|
|
41
|
+
if (set) {
|
|
42
|
+
fsm_dynamo_1.DyFM_Object.cleanAssign(this, set);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.DyNTS_ScopedConfig = DyNTS_ScopedConfig;
|
|
47
|
+
/**
|
|
48
|
+
* MongoDB data-params a `dynts_scoped_config` collection-höz (BFR-AM-004). `addArchive: true` → a
|
|
49
|
+
* felülírt (régi) értékek soft-delete-elve megőrződnek (audit-trail / history).
|
|
50
|
+
*
|
|
51
|
+
* A `value` `type:'object'` (Mongoose `Mixed`) — a séma NEM validál; a típushelyesség a fogyasztó
|
|
52
|
+
* katalógusának + set-kori validációjának dolga.
|
|
53
|
+
*/
|
|
54
|
+
exports.DyNTS_scopedConfig_dataParams = new fsm_dynamo_1.DyFM_DataModel_Params({
|
|
55
|
+
dataName: 'dynts_scoped_config',
|
|
56
|
+
addArchive: true,
|
|
57
|
+
properties: {
|
|
58
|
+
level: { type: 'string', index: true, required: true },
|
|
59
|
+
tableScope: { type: 'string', index: true },
|
|
60
|
+
scopeId: { type: 'string', index: true },
|
|
61
|
+
key: { type: 'string', index: true, required: true },
|
|
62
|
+
value: { type: 'object' },
|
|
63
|
+
setBy: { type: 'string', index: true },
|
|
64
|
+
setByDetail: { type: 'string' },
|
|
65
|
+
note: { type: 'string' },
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=dynts-scoped-config.data-model.js.map
|
package/build/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynts-scoped-config.data-model.js","sourceRoot":"","sources":["../../../../../src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts"],"names":[],"mappings":";;;AACA,sDAA0F;AAI1F;;;;;;;;;;;;;GAaG;AACH,MAAa,kBAAmB,SAAQ,0BAAa;IAEnD,4BAA4B;IAE5B,oDAAoD;IACpD,KAAK,CAA4B;IAEjC,mEAAmE;IACnE,UAAU,CAAU;IAEpB,4EAA4E;IAC5E,OAAO,CAAU;IAEjB,yBAAyB;IAEzB,0EAA0E;IAC1E,GAAG,CAAU;IAEb,gFAAgF;IAChF,KAAK,CAAW;IAEhB,gBAAgB;IAEhB,kCAAkC;IAClC,KAAK,CAAU;IAEf,oDAAoD;IACpD,WAAW,CAAU;IAErB,2BAA2B;IAC3B,IAAI,CAAU;IAEd,YAAY,GAAiC;QAC3C,KAAK,CAAC,GAAG,CAAC,CAAC;QAEX,IAAI,GAAG,EAAE,CAAC;YACR,wBAAW,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;CACF;AAvCD,gDAuCC;AAED;;;;;;GAMG;AACU,QAAA,6BAA6B,GACxC,IAAI,kCAAqB,CAAqB;IAC5C,QAAQ,EAAE,qBAAqB;IAC/B,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QAC3C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QACxC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;QACtC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB;CACF,CAAC,CAAC"}
|