mcp-creatio 0.6.2 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +233 -164
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -10
- package/dist/cli.js.map +1 -1
- package/dist/config-builder.d.ts +8 -0
- package/dist/config-builder.d.ts.map +1 -1
- package/dist/config-builder.js +147 -43
- package/dist/config-builder.js.map +1 -1
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +2 -1
- package/dist/consts.js.map +1 -1
- package/dist/creatio/auth/auth-manager.d.ts.map +1 -1
- package/dist/creatio/auth/auth-manager.js +5 -2
- package/dist/creatio/auth/auth-manager.js.map +1 -1
- package/dist/creatio/auth/auth.d.ts +4 -31
- package/dist/creatio/auth/auth.d.ts.map +1 -1
- package/dist/creatio/auth/auth.js +20 -26
- package/dist/creatio/auth/auth.js.map +1 -1
- package/dist/creatio/auth/constants.d.ts +14 -0
- package/dist/creatio/auth/constants.d.ts.map +1 -0
- package/dist/creatio/auth/constants.js +20 -0
- package/dist/creatio/auth/constants.js.map +1 -0
- package/dist/creatio/auth/contracts.d.ts +15 -0
- package/dist/creatio/auth/contracts.d.ts.map +1 -0
- package/dist/creatio/auth/contracts.js +3 -0
- package/dist/creatio/auth/contracts.js.map +1 -0
- package/dist/creatio/auth/headers.d.ts +3 -0
- package/dist/creatio/auth/headers.d.ts.map +1 -0
- package/dist/creatio/auth/headers.js +15 -0
- package/dist/creatio/auth/headers.js.map +1 -0
- package/dist/creatio/auth/identity.d.ts +8 -0
- package/dist/creatio/auth/identity.d.ts.map +1 -0
- package/dist/creatio/auth/identity.js +18 -0
- package/dist/creatio/auth/identity.js.map +1 -0
- package/dist/creatio/auth/index.d.ts +4 -3
- package/dist/creatio/auth/index.d.ts.map +1 -1
- package/dist/creatio/auth/index.js +5 -3
- package/dist/creatio/auth/index.js.map +1 -1
- package/dist/creatio/auth/providers/base-oauth2-provider.d.ts +13 -7
- package/dist/creatio/auth/providers/base-oauth2-provider.d.ts.map +1 -1
- package/dist/creatio/auth/providers/base-oauth2-provider.js +29 -19
- package/dist/creatio/auth/providers/base-oauth2-provider.js.map +1 -1
- package/dist/creatio/auth/providers/base-provider.js +1 -1
- package/dist/creatio/auth/providers/base-provider.js.map +1 -1
- package/dist/creatio/auth/providers/broker-provider.d.ts +20 -0
- package/dist/creatio/auth/providers/broker-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/broker-provider.js +72 -0
- package/dist/creatio/auth/providers/broker-provider.js.map +1 -0
- package/dist/creatio/auth/providers/creatio-oauth-client.d.ts +27 -0
- package/dist/creatio/auth/providers/creatio-oauth-client.d.ts.map +1 -0
- package/dist/creatio/auth/providers/creatio-oauth-client.js +122 -0
- package/dist/creatio/auth/providers/creatio-oauth-client.js.map +1 -0
- package/dist/creatio/auth/providers/index.d.ts +3 -1
- package/dist/creatio/auth/providers/index.d.ts.map +1 -1
- package/dist/creatio/auth/providers/index.js +3 -1
- package/dist/creatio/auth/providers/index.js.map +1 -1
- package/dist/creatio/auth/providers/oauth2-bearer-provider.d.ts +17 -0
- package/dist/creatio/auth/providers/oauth2-bearer-provider.d.ts.map +1 -0
- package/dist/creatio/auth/providers/oauth2-bearer-provider.js +33 -0
- package/dist/creatio/auth/providers/oauth2-bearer-provider.js.map +1 -0
- package/dist/creatio/auth/providers/oauth2-provider.d.ts +2 -2
- package/dist/creatio/auth/providers/oauth2-provider.d.ts.map +1 -1
- package/dist/creatio/auth/providers/oauth2-provider.js +4 -9
- package/dist/creatio/auth/providers/oauth2-provider.js.map +1 -1
- package/dist/creatio/auth/providers/type.d.ts +20 -1
- package/dist/creatio/auth/providers/type.d.ts.map +1 -1
- package/dist/creatio/auth/providers/type.js +22 -2
- package/dist/creatio/auth/providers/type.js.map +1 -1
- package/dist/creatio/client-config.d.ts +26 -5
- package/dist/creatio/client-config.d.ts.map +1 -1
- package/dist/creatio/engines/admin-operation-engine.d.ts +1 -1
- package/dist/creatio/engines/admin-operation-engine.d.ts.map +1 -1
- package/dist/creatio/engines/admin-operation-engine.js +3 -3
- package/dist/creatio/engines/admin-operation-engine.js.map +1 -1
- package/dist/creatio/engines/configuration-engine.d.ts +1 -1
- package/dist/creatio/engines/configuration-engine.d.ts.map +1 -1
- package/dist/creatio/engines/configuration-engine.js +3 -3
- package/dist/creatio/engines/configuration-engine.js.map +1 -1
- package/dist/creatio/engines/crud-engine.d.ts +1 -1
- package/dist/creatio/engines/crud-engine.d.ts.map +1 -1
- package/dist/creatio/engines/crud-engine.js +4 -4
- package/dist/creatio/engines/crud-engine.js.map +1 -1
- package/dist/creatio/engines/engine-manager.d.ts +1 -2
- package/dist/creatio/engines/engine-manager.d.ts.map +1 -1
- package/dist/creatio/engines/engine-manager.js +4 -10
- package/dist/creatio/engines/engine-manager.js.map +1 -1
- package/dist/creatio/engines/engine.d.ts.map +1 -1
- package/dist/creatio/engines/engine.js +12 -1
- package/dist/creatio/engines/engine.js.map +1 -1
- package/dist/creatio/engines/feature-engine.d.ts +1 -1
- package/dist/creatio/engines/feature-engine.d.ts.map +1 -1
- package/dist/creatio/engines/feature-engine.js +3 -3
- package/dist/creatio/engines/feature-engine.js.map +1 -1
- package/dist/creatio/engines/process-engine.d.ts +1 -1
- package/dist/creatio/engines/process-engine.d.ts.map +1 -1
- package/dist/creatio/engines/process-engine.js +3 -3
- package/dist/creatio/engines/process-engine.js.map +1 -1
- package/dist/creatio/engines/sys-settings-engine.d.ts +1 -1
- package/dist/creatio/engines/sys-settings-engine.d.ts.map +1 -1
- package/dist/creatio/engines/sys-settings-engine.js +3 -3
- package/dist/creatio/engines/sys-settings-engine.js.map +1 -1
- package/dist/creatio/engines/user-engine.d.ts +1 -1
- package/dist/creatio/engines/user-engine.d.ts.map +1 -1
- package/dist/creatio/engines/user-engine.js +3 -3
- package/dist/creatio/engines/user-engine.js.map +1 -1
- package/dist/creatio/services/creatio-service-context.d.ts +1 -1
- package/dist/creatio/services/creatio-service-context.d.ts.map +1 -1
- package/dist/creatio/services/crud-provider-factory.d.ts.map +1 -1
- package/dist/creatio/services/crud-provider-factory.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-column-values.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts +3 -3
- package/dist/creatio/services/dataservice/data-service-crud-provider.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-crud-provider.js +5 -5
- package/dist/creatio/services/dataservice/data-service-crud-provider.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-filter-translator.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-filter-translator.js +7 -2
- package/dist/creatio/services/dataservice/data-service-filter-translator.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-query-builder.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-query-builder.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-schema.d.ts +3 -3
- package/dist/creatio/services/dataservice/data-service-schema.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-schema.js +19 -17
- package/dist/creatio/services/dataservice/data-service-schema.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-transport.d.ts +1 -1
- package/dist/creatio/services/dataservice/data-service-transport.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-transport.js +3 -3
- package/dist/creatio/services/dataservice/data-service-transport.js.map +1 -1
- package/dist/creatio/services/dataservice/data-service-types.d.ts +0 -19
- package/dist/creatio/services/dataservice/data-service-types.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-value-type.d.ts +2 -1
- package/dist/creatio/services/dataservice/data-service-value-type.d.ts.map +1 -1
- package/dist/creatio/services/dataservice/data-service-value-type.js +20 -16
- package/dist/creatio/services/dataservice/data-service-value-type.js.map +1 -1
- package/dist/creatio/services/http-client.d.ts +13 -0
- package/dist/creatio/services/http-client.d.ts.map +1 -1
- package/dist/creatio/services/http-client.js +26 -2
- package/dist/creatio/services/http-client.js.map +1 -1
- package/dist/creatio/services/identifiers.d.ts +10 -0
- package/dist/creatio/services/identifiers.d.ts.map +1 -0
- package/dist/creatio/services/identifiers.js +20 -0
- package/dist/creatio/services/identifiers.js.map +1 -0
- package/dist/creatio/services/odata/metadata-store.d.ts +6 -2
- package/dist/creatio/services/odata/metadata-store.d.ts.map +1 -1
- package/dist/creatio/services/odata/metadata-store.js +30 -34
- package/dist/creatio/services/odata/metadata-store.js.map +1 -1
- package/dist/creatio/services/odata/odata-crud-provider.d.ts.map +1 -1
- package/dist/creatio/services/odata/odata-crud-provider.js +10 -25
- package/dist/creatio/services/odata/odata-crud-provider.js.map +1 -1
- package/dist/creatio/services/odata/odata-query-translator.d.ts +4 -5
- package/dist/creatio/services/odata/odata-query-translator.d.ts.map +1 -1
- package/dist/creatio/services/odata/odata-query-translator.js +32 -20
- package/dist/creatio/services/odata/odata-query-translator.js.map +1 -1
- package/dist/creatio/services/user-info-provider.d.ts.map +1 -1
- package/dist/creatio/services/user-info-provider.js +2 -2
- package/dist/creatio/services/user-info-provider.js.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/log.d.ts +1 -1
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +2 -1
- package/dist/log.js.map +1 -1
- package/dist/server/bearer/base-url-guard.d.ts +20 -0
- package/dist/server/bearer/base-url-guard.d.ts.map +1 -0
- package/dist/server/bearer/base-url-guard.js +55 -0
- package/dist/server/bearer/base-url-guard.js.map +1 -0
- package/dist/server/bearer/bearer-edge.d.ts +42 -0
- package/dist/server/bearer/bearer-edge.d.ts.map +1 -0
- package/dist/server/bearer/bearer-edge.js +122 -0
- package/dist/server/bearer/bearer-edge.js.map +1 -0
- package/dist/server/bearer/bearer-token.d.ts +27 -0
- package/dist/server/bearer/bearer-token.d.ts.map +1 -0
- package/dist/server/bearer/bearer-token.js +50 -0
- package/dist/server/bearer/bearer-token.js.map +1 -0
- package/dist/server/bearer/index.d.ts +3 -0
- package/dist/server/bearer/index.d.ts.map +1 -0
- package/dist/server/bearer/index.js +19 -0
- package/dist/server/bearer/index.js.map +1 -0
- package/dist/server/http/auth-edge.d.ts +26 -0
- package/dist/server/http/auth-edge.d.ts.map +1 -0
- package/dist/server/http/auth-edge.js +75 -0
- package/dist/server/http/auth-edge.js.map +1 -0
- package/dist/server/http/broker-handlers.d.ts +45 -0
- package/dist/server/http/broker-handlers.d.ts.map +1 -0
- package/dist/server/http/broker-handlers.js +224 -0
- package/dist/server/http/broker-handlers.js.map +1 -0
- package/dist/server/http/{httpServer.d.ts → http-server.d.ts} +5 -13
- package/dist/server/http/http-server.d.ts.map +1 -0
- package/dist/server/http/{httpServer.js → http-server.js} +19 -53
- package/dist/server/http/http-server.js.map +1 -0
- package/dist/server/http/index.d.ts +1 -3
- package/dist/server/http/index.d.ts.map +1 -1
- package/dist/server/http/index.js +1 -3
- package/dist/server/http/index.js.map +1 -1
- package/dist/server/http/mcp-handlers.d.ts.map +1 -1
- package/dist/server/http/mcp-handlers.js +16 -3
- package/dist/server/http/mcp-handlers.js.map +1 -1
- package/dist/server/http/middleware.d.ts +3 -4
- package/dist/server/http/middleware.d.ts.map +1 -1
- package/dist/server/http/middleware.js +33 -23
- package/dist/server/http/middleware.js.map +1 -1
- package/dist/server/http/public-origin.d.ts +10 -0
- package/dist/server/http/public-origin.d.ts.map +1 -0
- package/dist/server/http/public-origin.js +19 -0
- package/dist/server/http/public-origin.js.map +1 -0
- package/dist/server/http/rate-limiter.d.ts +1 -1
- package/dist/server/http/rate-limiter.d.ts.map +1 -1
- package/dist/server/http/rate-limiter.js +11 -11
- package/dist/server/http/rate-limiter.js.map +1 -1
- package/dist/server/http-agent.d.ts +9 -0
- package/dist/server/http-agent.d.ts.map +1 -0
- package/dist/server/http-agent.js +35 -0
- package/dist/server/http-agent.js.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/keepalive.d.ts +26 -0
- package/dist/server/keepalive.d.ts.map +1 -0
- package/dist/server/keepalive.js +64 -0
- package/dist/server/keepalive.js.map +1 -0
- package/dist/server/mcp/creatio-rest.d.ts +6 -0
- package/dist/server/mcp/creatio-rest.d.ts.map +1 -1
- package/dist/server/mcp/creatio-rest.js +21 -3
- package/dist/server/mcp/creatio-rest.js.map +1 -1
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts +1 -1
- package/dist/server/mcp/crtmcp/crt-mcp-client.d.ts.map +1 -1
- package/dist/server/mcp/crtmcp/crt-mcp-client.js +16 -13
- package/dist/server/mcp/crtmcp/crt-mcp-client.js.map +1 -1
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts +2 -2
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.d.ts.map +1 -1
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js +17 -17
- package/dist/server/mcp/crtmcp/crt-mcp-tool-preparer.js.map +1 -1
- package/dist/server/mcp/dataforge/dataforge-client.d.ts +12 -12
- package/dist/server/mcp/dataforge/dataforge-client.d.ts.map +1 -1
- package/dist/server/mcp/dataforge/dataforge-client.js +40 -47
- package/dist/server/mcp/dataforge/dataforge-client.js.map +1 -1
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts +2 -2
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.d.ts.map +1 -1
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js +9 -9
- package/dist/server/mcp/dataforge/dataforge-tool-preparer.js.map +1 -1
- package/dist/server/mcp/filters.d.ts.map +1 -1
- package/dist/server/mcp/filters.js +4 -1
- package/dist/server/mcp/filters.js.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts +4 -4
- package/dist/server/mcp/globalsearch/globalsearch-client.d.ts.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-client.js +39 -50
- package/dist/server/mcp/globalsearch/globalsearch-client.js.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.d.ts.map +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js +1 -1
- package/dist/server/mcp/globalsearch/globalsearch-tool-preparer.js.map +1 -1
- package/dist/server/mcp/server.d.ts +35 -8
- package/dist/server/mcp/server.d.ts.map +1 -1
- package/dist/server/mcp/server.js +104 -44
- package/dist/server/mcp/server.js.map +1 -1
- package/dist/server/mcp/tools-data.d.ts +2 -2
- package/dist/server/mcp/tools-data.d.ts.map +1 -1
- package/dist/server/mcp/tools-data.js +1 -1
- package/dist/server/mcp/tools-data.js.map +1 -1
- package/dist/server/oauth/oauth-server.d.ts +41 -10
- package/dist/server/oauth/oauth-server.d.ts.map +1 -1
- package/dist/server/oauth/oauth-server.js +82 -48
- package/dist/server/oauth/oauth-server.js.map +1 -1
- package/dist/server/oauth/storage.d.ts +42 -5
- package/dist/server/oauth/storage.d.ts.map +1 -1
- package/dist/server/oauth/storage.js +81 -18
- package/dist/server/oauth/storage.js.map +1 -1
- package/dist/server/oauth/token-manager.d.ts +21 -4
- package/dist/server/oauth/token-manager.d.ts.map +1 -1
- package/dist/server/oauth/token-manager.js +18 -19
- package/dist/server/oauth/token-manager.js.map +1 -1
- package/dist/server/oauth/types.d.ts +0 -12
- package/dist/server/oauth/types.d.ts.map +1 -1
- package/dist/server/oauth/validators.d.ts.map +1 -1
- package/dist/server/oauth/validators.js +14 -5
- package/dist/server/oauth/validators.js.map +1 -1
- package/dist/sessions/index.d.ts +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +1 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/redis-token-store.d.ts +22 -0
- package/dist/sessions/redis-token-store.d.ts.map +1 -0
- package/dist/sessions/redis-token-store.js +70 -0
- package/dist/sessions/redis-token-store.js.map +1 -0
- package/dist/sessions/session-context.d.ts +21 -40
- package/dist/sessions/session-context.d.ts.map +1 -1
- package/dist/sessions/session-context.js +25 -105
- package/dist/sessions/session-context.js.map +1 -1
- package/dist/sessions/token-crypto.d.ts +8 -0
- package/dist/sessions/token-crypto.d.ts.map +1 -0
- package/dist/sessions/token-crypto.js +43 -0
- package/dist/sessions/token-crypto.js.map +1 -0
- package/dist/sessions/token-store.d.ts +42 -0
- package/dist/sessions/token-store.d.ts.map +1 -0
- package/dist/sessions/token-store.js +66 -0
- package/dist/sessions/token-store.js.map +1 -0
- package/dist/utils/context.d.ts +12 -0
- package/dist/utils/context.d.ts.map +1 -1
- package/dist/utils/context.js +16 -0
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/env-aliases.d.ts +9 -0
- package/dist/utils/env-aliases.d.ts.map +1 -0
- package/dist/utils/env-aliases.js +61 -0
- package/dist/utils/env-aliases.js.map +1 -0
- package/dist/utils/env.d.ts +5 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +10 -1
- package/dist/utils/env.js.map +1 -1
- package/package.json +78 -76
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts +0 -21
- package/dist/creatio/auth/providers/oauth2-code-provider.d.ts.map +0 -1
- package/dist/creatio/auth/providers/oauth2-code-provider.js +0 -251
- package/dist/creatio/auth/providers/oauth2-code-provider.js.map +0 -1
- package/dist/server/http/creatio-oauth-handlers.d.ts +0 -13
- package/dist/server/http/creatio-oauth-handlers.d.ts.map +0 -1
- package/dist/server/http/creatio-oauth-handlers.js +0 -160
- package/dist/server/http/creatio-oauth-handlers.js.map +0 -1
- package/dist/server/http/httpServer.d.ts.map +0 -1
- package/dist/server/http/httpServer.js.map +0 -1
- package/dist/server/http/mcp-oauth-handlers.d.ts +0 -11
- package/dist/server/http/mcp-oauth-handlers.d.ts.map +0 -1
- package/dist/server/http/mcp-oauth-handlers.js +0 -118
- package/dist/server/http/mcp-oauth-handlers.js.map +0 -1
- package/dist/sessions/token-refresh-scheduler.d.ts +0 -16
- package/dist/sessions/token-refresh-scheduler.d.ts.map +0 -1
- package/dist/sessions/token-refresh-scheduler.js +0 -66
- package/dist/sessions/token-refresh-scheduler.js.map +0 -1
|
@@ -16,13 +16,29 @@ const NAME_PREFIX = 'pub';
|
|
|
16
16
|
* JSON-RPC endpoint, so the app keeps ownership of validation/RBAC/execution.
|
|
17
17
|
*/
|
|
18
18
|
class CrtMcpPublishingToolPreparer {
|
|
19
|
-
name = exports.PUBLISHED_TOOLS_CAPABILITY;
|
|
20
19
|
_client;
|
|
21
20
|
_enabled;
|
|
21
|
+
name = exports.PUBLISHED_TOOLS_CAPABILITY;
|
|
22
22
|
constructor(client, enabled) {
|
|
23
23
|
this._client = client;
|
|
24
24
|
this._enabled = enabled;
|
|
25
25
|
}
|
|
26
|
+
_registerTool(registrar, serverCode, tool) {
|
|
27
|
+
const descriptor = {
|
|
28
|
+
title: tool.name,
|
|
29
|
+
description: tool.description ??
|
|
30
|
+
`Published tool "${tool.name}" from Creatio MCP server "${serverCode}".`,
|
|
31
|
+
inputSchema: (0, json_schema_to_zod_1.jsonSchemaToZodShape)(tool.inputSchema),
|
|
32
|
+
};
|
|
33
|
+
// Proxy the call straight through; the app validates args and shapes the result.
|
|
34
|
+
const handler = (args) => this._client.callTool(serverCode, tool.name, args ?? {});
|
|
35
|
+
registrar.register(this._toolName(serverCode, tool.name), descriptor, handler);
|
|
36
|
+
}
|
|
37
|
+
// Namespace by server + tool so names never collide across servers or with built-in tools.
|
|
38
|
+
_toolName(serverCode, toolName) {
|
|
39
|
+
const sanitize = (value) => value.replace(/[^A-Za-z0-9_-]/g, '_');
|
|
40
|
+
return `${NAME_PREFIX}-${sanitize(serverCode)}-${sanitize(toolName)}`;
|
|
41
|
+
}
|
|
26
42
|
async prepare(registrar) {
|
|
27
43
|
if (!this._enabled) {
|
|
28
44
|
return false;
|
|
@@ -53,22 +69,6 @@ class CrtMcpPublishingToolPreparer {
|
|
|
53
69
|
log_1.default.info('crtmcp.prepared', { servers: servers.length, tools: registered });
|
|
54
70
|
return registered > 0;
|
|
55
71
|
}
|
|
56
|
-
_registerTool(registrar, serverCode, tool) {
|
|
57
|
-
const descriptor = {
|
|
58
|
-
title: tool.name,
|
|
59
|
-
description: tool.description ??
|
|
60
|
-
`Published tool "${tool.name}" from Creatio MCP server "${serverCode}".`,
|
|
61
|
-
inputSchema: (0, json_schema_to_zod_1.jsonSchemaToZodShape)(tool.inputSchema),
|
|
62
|
-
};
|
|
63
|
-
// Proxy the call straight through; the app validates args and shapes the result.
|
|
64
|
-
const handler = (args) => this._client.callTool(serverCode, tool.name, args ?? {});
|
|
65
|
-
registrar.register(this._toolName(serverCode, tool.name), descriptor, handler);
|
|
66
|
-
}
|
|
67
|
-
// Namespace by server + tool so names never collide across servers or with built-in tools.
|
|
68
|
-
_toolName(serverCode, toolName) {
|
|
69
|
-
const sanitize = (value) => value.replace(/[^A-Za-z0-9_-]/g, '_');
|
|
70
|
-
return `${NAME_PREFIX}-${sanitize(serverCode)}-${sanitize(toolName)}`;
|
|
71
|
-
}
|
|
72
72
|
}
|
|
73
73
|
exports.CrtMcpPublishingToolPreparer = CrtMcpPublishingToolPreparer;
|
|
74
74
|
//# sourceMappingURL=crt-mcp-tool-preparer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crt-mcp-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/crtmcp/crt-mcp-tool-preparer.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,8DAA6D;AAK7D,6BAA6B;AAChB,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;AAE5D,MAAM,WAAW,GAAG,KAAK,CAAC;AAE1B;;;;;GAKG;AACH,MAAa,4BAA4B;
|
|
1
|
+
{"version":3,"file":"crt-mcp-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/crtmcp/crt-mcp-tool-preparer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigurationCallResult, ConfigurationCaller, SysSettingReader } from '../creatio-rest';
|
|
2
2
|
export type { ConfigurationCaller, ConfigurationCallRequest, ConfigurationCallResult, ConfigurationHttpMethod, SysSettingReader, } from '../creatio-rest';
|
|
3
3
|
/**
|
|
4
4
|
* DataForge access layer.
|
|
@@ -30,6 +30,17 @@ export declare class DataForgeClient {
|
|
|
30
30
|
private readonly _configuration;
|
|
31
31
|
private readonly _sysSettings;
|
|
32
32
|
constructor(configuration: ConfigurationCaller, sysSettings: SysSettingReader);
|
|
33
|
+
private _read;
|
|
34
|
+
/**
|
|
35
|
+
* The configuration REST services use WCF `BodyStyle = Wrapped`, so a response
|
|
36
|
+
* is nested under a single `<Method>Result` key (e.g. `GetTableColumnsDetailsResult`).
|
|
37
|
+
* Unwrap it so failure detection and the returned payload see the actual response.
|
|
38
|
+
*/
|
|
39
|
+
private _unwrapResult;
|
|
40
|
+
/** Creatio serializes `BaseResponse.Success` as camelCase `success`; tolerate both. */
|
|
41
|
+
private _isFailure;
|
|
42
|
+
private _errorCode;
|
|
43
|
+
private _omitUndefined;
|
|
33
44
|
/**
|
|
34
45
|
* Whether DataForge is configured on this environment. Gated on a non-empty
|
|
35
46
|
* `DataForgeServiceUrl`, mirroring the server-side `IsDataForgeEnabled` check.
|
|
@@ -49,16 +60,5 @@ export declare class DataForgeClient {
|
|
|
49
60
|
* disables DataForge globally (that verdict is owned by {@link isEnabled}).
|
|
50
61
|
*/
|
|
51
62
|
getColumnsOrNull(tableName: string): Promise<unknown | null>;
|
|
52
|
-
private _read;
|
|
53
|
-
/**
|
|
54
|
-
* The configuration REST services use WCF `BodyStyle = Wrapped`, so a response
|
|
55
|
-
* is nested under a single `<Method>Result` key (e.g. `GetTableColumnsDetailsResult`).
|
|
56
|
-
* Unwrap it so failure detection and the returned payload see the actual response.
|
|
57
|
-
*/
|
|
58
|
-
private _unwrapResult;
|
|
59
|
-
/** Creatio serializes `BaseResponse.Success` as camelCase `success`; tolerate both. */
|
|
60
|
-
private _isFailure;
|
|
61
|
-
private _errorCode;
|
|
62
|
-
private _omitUndefined;
|
|
63
63
|
}
|
|
64
64
|
//# sourceMappingURL=dataforge-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataforge-client.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-client.ts"],"names":[],"mappings":"AACA,OAAO,EACN,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"dataforge-client.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-client.ts"],"names":[],"mappings":"AACA,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAEhB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACX,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,GAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAMD,qBAAa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB;IAK7E,OAAO,CAAC,KAAK;IAYb;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAUrB,uFAAuF;IACvF,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,cAAc;IAItB;;;;OAIG;IACI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7B,oBAAoB,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAI7E,eAAe,CAAC,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIxE,qBAAqB,CAAC,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAUnF,eAAe,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAQvE,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIpE,gBAAgB,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAS3D;;;;;OAKG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAgBzE"}
|
|
@@ -16,20 +16,51 @@ class DataForgeClient {
|
|
|
16
16
|
this._configuration = configuration;
|
|
17
17
|
this._sysSettings = sysSettings;
|
|
18
18
|
}
|
|
19
|
+
_read(method, request) {
|
|
20
|
+
return this._configuration.call({
|
|
21
|
+
service: READ_SERVICE,
|
|
22
|
+
method,
|
|
23
|
+
httpMethod: 'POST',
|
|
24
|
+
body: { request: this._omitUndefined(request) },
|
|
25
|
+
});
|
|
26
|
+
}
|
|
19
27
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
28
|
+
* The configuration REST services use WCF `BodyStyle = Wrapped`, so a response
|
|
29
|
+
* is nested under a single `<Method>Result` key (e.g. `GetTableColumnsDetailsResult`).
|
|
30
|
+
* Unwrap it so failure detection and the returned payload see the actual response.
|
|
23
31
|
*/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
32
|
+
_unwrapResult(body) {
|
|
33
|
+
if (body && typeof body === 'object' && !Array.isArray(body)) {
|
|
34
|
+
const keys = Object.keys(body);
|
|
35
|
+
if (keys.length === 1 && keys[0].endsWith('Result')) {
|
|
36
|
+
return body[keys[0]];
|
|
37
|
+
}
|
|
28
38
|
}
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
return body;
|
|
40
|
+
}
|
|
41
|
+
/** Creatio serializes `BaseResponse.Success` as camelCase `success`; tolerate both. */
|
|
42
|
+
_isFailure(result) {
|
|
43
|
+
if (!result || typeof result !== 'object') {
|
|
31
44
|
return false;
|
|
32
45
|
}
|
|
46
|
+
const r = result;
|
|
47
|
+
return r.success === false || r.Success === false;
|
|
48
|
+
}
|
|
49
|
+
_errorCode(result) {
|
|
50
|
+
const r = result;
|
|
51
|
+
const info = r?.errorInfo ?? r?.ErrorInfo;
|
|
52
|
+
return info?.errorCode ?? info?.ErrorCode;
|
|
53
|
+
}
|
|
54
|
+
_omitUndefined(obj) {
|
|
55
|
+
return Object.fromEntries(Object.entries(obj).filter(([, value]) => value !== undefined));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Whether DataForge is configured on this environment. Gated on a non-empty
|
|
59
|
+
* `DataForgeServiceUrl`, mirroring the server-side `IsDataForgeEnabled` check.
|
|
60
|
+
* Probe failures are treated as "disabled" so callers degrade gracefully.
|
|
61
|
+
*/
|
|
62
|
+
isEnabled() {
|
|
63
|
+
return (0, creatio_rest_1.probeSettingEnabled)(this._sysSettings, SERVICE_URL_SETTING, 'dataforge');
|
|
33
64
|
}
|
|
34
65
|
getSimilarTableNames(q) {
|
|
35
66
|
return this._read('GetSimilarTableNames', { query: q.query, limit: q.limit });
|
|
@@ -87,44 +118,6 @@ class DataForgeClient {
|
|
|
87
118
|
return null;
|
|
88
119
|
}
|
|
89
120
|
}
|
|
90
|
-
_read(method, request) {
|
|
91
|
-
return this._configuration.call({
|
|
92
|
-
service: READ_SERVICE,
|
|
93
|
-
method,
|
|
94
|
-
httpMethod: 'POST',
|
|
95
|
-
body: { request: this._omitUndefined(request) },
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* The configuration REST services use WCF `BodyStyle = Wrapped`, so a response
|
|
100
|
-
* is nested under a single `<Method>Result` key (e.g. `GetTableColumnsDetailsResult`).
|
|
101
|
-
* Unwrap it so failure detection and the returned payload see the actual response.
|
|
102
|
-
*/
|
|
103
|
-
_unwrapResult(body) {
|
|
104
|
-
if (body && typeof body === 'object' && !Array.isArray(body)) {
|
|
105
|
-
const keys = Object.keys(body);
|
|
106
|
-
if (keys.length === 1 && keys[0].endsWith('Result')) {
|
|
107
|
-
return body[keys[0]];
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return body;
|
|
111
|
-
}
|
|
112
|
-
/** Creatio serializes `BaseResponse.Success` as camelCase `success`; tolerate both. */
|
|
113
|
-
_isFailure(result) {
|
|
114
|
-
if (!result || typeof result !== 'object') {
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
const r = result;
|
|
118
|
-
return r.success === false || r.Success === false;
|
|
119
|
-
}
|
|
120
|
-
_errorCode(result) {
|
|
121
|
-
const r = result;
|
|
122
|
-
const info = r?.errorInfo ?? r?.ErrorInfo;
|
|
123
|
-
return info?.errorCode ?? info?.ErrorCode;
|
|
124
|
-
}
|
|
125
|
-
_omitUndefined(obj) {
|
|
126
|
-
return Object.fromEntries(Object.entries(obj).filter(([, value]) => value !== undefined));
|
|
127
|
-
}
|
|
128
121
|
}
|
|
129
122
|
exports.DataForgeClient = DataForgeClient;
|
|
130
123
|
//# sourceMappingURL=dataforge-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataforge-client.js","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-client.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,kDAKyB;AAyCzB,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,mBAAmB,GAAG,6BAA6B,CAAC;AAC1D,MAAM,mBAAmB,GAAG,qBAAqB,CAAC;AAElD,MAAa,eAAe;IACV,cAAc,CAAsB;IACpC,YAAY,CAAmB;IAEhD,YAAY,aAAkC,EAAE,WAA6B;QAC5E,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;
|
|
1
|
+
{"version":3,"file":"dataforge-client.js","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,10 +8,10 @@ export declare const DATAFORGE_CAPABILITY = "dataforge";
|
|
|
8
8
|
* agnostic of how the capability is probed or wired.
|
|
9
9
|
*/
|
|
10
10
|
export declare class DataForgeToolPreparer implements ToolPreparer {
|
|
11
|
-
readonly name = "dataforge";
|
|
12
11
|
private readonly _client;
|
|
12
|
+
readonly name = "dataforge";
|
|
13
13
|
constructor(client: DataForgeClient);
|
|
14
|
-
prepare(registrar: ToolRegistrar): Promise<boolean>;
|
|
15
14
|
private _registerTools;
|
|
15
|
+
prepare(registrar: ToolRegistrar): Promise<boolean>;
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=dataforge-tool-preparer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataforge-tool-preparer.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-tool-preparer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAc/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,
|
|
1
|
+
{"version":3,"file":"dataforge-tool-preparer.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-tool-preparer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAc/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAE1C,SAAgB,IAAI,eAAwB;gBAEhC,MAAM,EAAE,eAAe;IAInC,OAAO,CAAC,cAAc;IA4CT,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAQhE"}
|
|
@@ -11,19 +11,11 @@ exports.DATAFORGE_CAPABILITY = 'dataforge';
|
|
|
11
11
|
* agnostic of how the capability is probed or wired.
|
|
12
12
|
*/
|
|
13
13
|
class DataForgeToolPreparer {
|
|
14
|
-
name = exports.DATAFORGE_CAPABILITY;
|
|
15
14
|
_client;
|
|
15
|
+
name = exports.DATAFORGE_CAPABILITY;
|
|
16
16
|
constructor(client) {
|
|
17
17
|
this._client = client;
|
|
18
18
|
}
|
|
19
|
-
async prepare(registrar) {
|
|
20
|
-
const enabled = await this._client.isEnabled();
|
|
21
|
-
if (!enabled) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
this._registerTools(registrar);
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
19
|
_registerTools(registrar) {
|
|
28
20
|
registrar.register('dataforge-similar-tables', tools_data_1.dataforgeSimilarTablesDescriptor, (0, utils_1.withValidation)(tools_data_1.dataforgeSimilarTablesInput, ({ query, limit }) => this._client.getSimilarTableNames({ query, limit })));
|
|
29
21
|
registrar.register('dataforge-table-details', tools_data_1.dataforgeTableDetailsDescriptor, (0, utils_1.withValidation)(tools_data_1.dataforgeTableDetailsInput, ({ query, limit }) => this._client.getTableDetails({ query, limit })));
|
|
@@ -37,6 +29,14 @@ class DataForgeToolPreparer {
|
|
|
37
29
|
registrar.register('dataforge-lookup-values', tools_data_1.dataforgeLookupValuesDescriptor, (0, utils_1.withValidation)(tools_data_1.dataforgeLookupValuesInput, ({ query, schemaName, limit }) => this._client.getLookupValues({ query, schemaName, limit })));
|
|
38
30
|
registrar.register('dataforge-status', tools_data_1.dataforgeStatusDescriptor, (0, utils_1.withValidation)(tools_data_1.dataforgeStatusInput, () => this._client.getServiceStatus()));
|
|
39
31
|
}
|
|
32
|
+
async prepare(registrar) {
|
|
33
|
+
const enabled = await this._client.isEnabled();
|
|
34
|
+
if (!enabled) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
this._registerTools(registrar);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
40
|
}
|
|
41
41
|
exports.DataForgeToolPreparer = DataForgeToolPreparer;
|
|
42
42
|
//# sourceMappingURL=dataforge-tool-preparer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataforge-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-tool-preparer.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAEhD,8CAWuB;AAIvB,sFAAsF;AACzE,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEhD;;;;GAIG;AACH,MAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"dataforge-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/dataforge/dataforge-tool-preparer.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAEhD,8CAWuB;AAIvB,sFAAsF;AACzE,QAAA,oBAAoB,GAAG,WAAW,CAAC;AAEhD;;;;GAIG;AACH,MAAa,qBAAqB;IAChB,OAAO,CAAkB;IAE1B,IAAI,GAAG,4BAAoB,CAAC;IAE5C,YAAY,MAAuB;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,cAAc,CAAC,SAAwB;QAC9C,SAAS,CAAC,QAAQ,CACjB,0BAA0B,EAC1B,6CAAgC,EAChC,IAAA,sBAAc,EAAC,wCAA2B,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAChE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACnD,CACD,CAAC;QACF,SAAS,CAAC,QAAQ,CACjB,yBAAyB,EACzB,4CAA+B,EAC/B,IAAA,sBAAc,EAAC,uCAA0B,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAC/D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAC9C,CACD,CAAC;QACF,SAAS,CAAC,QAAQ,CACjB,+BAA+B,EAC/B,kDAAqC,EACrC,IAAA,sBAAc,EACb,6CAAgC,EAChC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CACnE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;YAClC,WAAW;YACX,WAAW;YACX,KAAK;YACL,aAAa;YACb,WAAW;SACX,CAAC,CACH,CACD,CAAC;QACF,SAAS,CAAC,QAAQ,CACjB,yBAAyB,EACzB,4CAA+B,EAC/B,IAAA,sBAAc,EAAC,uCAA0B,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,CAC3E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAC1D,CACD,CAAC;QACF,SAAS,CAAC,QAAQ,CACjB,kBAAkB,EAClB,sCAAyB,EACzB,IAAA,sBAAc,EAAC,iCAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAC3E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAwB;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA7DD,sDA6DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAqDlF;0FAC0F;AAC1F,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAexE;AAED;2DAC2D;AAC3D,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/server/mcp/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAqDlF;0FAC0F;AAC1F,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAexE;AAED;2DAC2D;AAC3D,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,SAAS,CAgBtE"}
|
|
@@ -61,7 +61,10 @@ function parseOrderBy(orderBy) {
|
|
|
61
61
|
.filter(Boolean)
|
|
62
62
|
.map((part) => {
|
|
63
63
|
const [field, dir] = part.split(/\s+/);
|
|
64
|
-
return {
|
|
64
|
+
return {
|
|
65
|
+
field: field,
|
|
66
|
+
dir: (dir ?? '').toLowerCase() === 'desc' ? 'desc' : 'asc',
|
|
67
|
+
};
|
|
65
68
|
});
|
|
66
69
|
return terms.length ? terms : undefined;
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/server/mcp/filters.ts"],"names":[],"mappings":";;AAuDA,0CAeC;AAID,
|
|
1
|
+
{"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/server/mcp/filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,10 @@ export declare class GlobalSearchClient {
|
|
|
26
26
|
private readonly _configuration;
|
|
27
27
|
private readonly _sysSettings;
|
|
28
28
|
constructor(configuration: ConfigurationCaller, sysSettings: SysSettingReader);
|
|
29
|
+
/** Parse the stringified `SearchResult` envelope and project it to a compact shape. */
|
|
30
|
+
private _project;
|
|
31
|
+
/** Best-effort human title from a record's column values (string or `{ displayValue }`). */
|
|
32
|
+
private _displayName;
|
|
29
33
|
/**
|
|
30
34
|
* Whether Global Search is configured on this environment. Gated on a non-empty
|
|
31
35
|
* `GlobalSearchUrl`. Note: the platform additionally requires the `GlobalSearch_V2`
|
|
@@ -42,9 +46,5 @@ export declare class GlobalSearchClient {
|
|
|
42
46
|
* full record.)
|
|
43
47
|
*/
|
|
44
48
|
search(q: GlobalSearchQuery): Promise<unknown>;
|
|
45
|
-
/** Parse the stringified `SearchResult` envelope and project it to a compact shape. */
|
|
46
|
-
private _project;
|
|
47
|
-
/** Best-effort human title from a record's column values (string or `{ displayValue }`). */
|
|
48
|
-
private _displayName;
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=globalsearch-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalsearch-client.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalsearch-client.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AAE7F;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,iBAAiB;IACjC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAQD,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB;IAK7E,uFAAuF;IACvF,OAAO,CAAC,QAAQ;IAyChB,4FAA4F;IAC5F,OAAO,CAAC,YAAY;IAoBpB;;;;;OAKG;IACI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;;;;;;OAOG;IACU,MAAM,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;CAsB3D"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.GlobalSearchClient = void 0;
|
|
7
|
-
const log_1 = __importDefault(require("../../../log"));
|
|
8
4
|
const creatio_rest_1 = require("../creatio-rest");
|
|
9
5
|
const SEARCH_SERVICE = 'GlobalSearchService';
|
|
10
6
|
// Either URL being set is the operator-facing signal that Global Search is wired;
|
|
@@ -18,52 +14,6 @@ class GlobalSearchClient {
|
|
|
18
14
|
this._configuration = configuration;
|
|
19
15
|
this._sysSettings = sysSettings;
|
|
20
16
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Whether Global Search is configured on this environment. Gated on a non-empty
|
|
23
|
-
* `GlobalSearchUrl`. Note: the platform additionally requires the `GlobalSearch_V2`
|
|
24
|
-
* feature; a configured URL is the cheap operator-facing signal used to decide
|
|
25
|
-
* whether to expose the tool. Probe failures degrade to "disabled".
|
|
26
|
-
*/
|
|
27
|
-
async isEnabled() {
|
|
28
|
-
try {
|
|
29
|
-
const response = await this._sysSettings.queryValues([SEARCH_URL_SETTING]);
|
|
30
|
-
return (0, creatio_rest_1.hasNonEmptySetting)(response, SEARCH_URL_SETTING);
|
|
31
|
-
}
|
|
32
|
-
catch (err) {
|
|
33
|
-
log_1.default.warn('globalsearch.probe.failed', { error: String(err) });
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Run a global search and return a compact, UI-like result: per match the
|
|
39
|
-
* entity, record id, a display title, and the highlighted `matched` columns —
|
|
40
|
-
* plus `total`/`nextFrom` for paging. (The raw service returns every indexed
|
|
41
|
-
* column of every record as a stringified `SearchResult`; that is far too large
|
|
42
|
-
* to hand to an LLM, so we parse and project it. Use `read` with the id for the
|
|
43
|
-
* full record.)
|
|
44
|
-
*/
|
|
45
|
-
async search(q) {
|
|
46
|
-
// `GlobalSearchService.Search(queryString, sectionEntityName, recordCount, type="", from=0)`
|
|
47
|
-
// — the first three parameters have no defaults, so the WCF Wrapped body MUST
|
|
48
|
-
// include them or binding fails with HTTP 400. `type` is optional; only send it
|
|
49
|
-
// when filtering, mirroring the UI call.
|
|
50
|
-
const body = {
|
|
51
|
-
queryString: q.query,
|
|
52
|
-
sectionEntityName: q.sectionEntityName ?? '',
|
|
53
|
-
recordCount: q.recordCount ?? DEFAULT_RECORD_COUNT,
|
|
54
|
-
from: q.from ?? 0,
|
|
55
|
-
};
|
|
56
|
-
if (q.type) {
|
|
57
|
-
body.type = q.type;
|
|
58
|
-
}
|
|
59
|
-
const response = await this._configuration.call({
|
|
60
|
-
service: SEARCH_SERVICE,
|
|
61
|
-
method: 'Search',
|
|
62
|
-
httpMethod: 'POST',
|
|
63
|
-
body,
|
|
64
|
-
});
|
|
65
|
-
return this._project(response.body);
|
|
66
|
-
}
|
|
67
17
|
/** Parse the stringified `SearchResult` envelope and project it to a compact shape. */
|
|
68
18
|
_project(body) {
|
|
69
19
|
const raw = body?.SearchResult;
|
|
@@ -113,6 +63,45 @@ class GlobalSearchClient {
|
|
|
113
63
|
}
|
|
114
64
|
return undefined;
|
|
115
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Whether Global Search is configured on this environment. Gated on a non-empty
|
|
68
|
+
* `GlobalSearchUrl`. Note: the platform additionally requires the `GlobalSearch_V2`
|
|
69
|
+
* feature; a configured URL is the cheap operator-facing signal used to decide
|
|
70
|
+
* whether to expose the tool. Probe failures degrade to "disabled".
|
|
71
|
+
*/
|
|
72
|
+
isEnabled() {
|
|
73
|
+
return (0, creatio_rest_1.probeSettingEnabled)(this._sysSettings, SEARCH_URL_SETTING, 'globalsearch');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Run a global search and return a compact, UI-like result: per match the
|
|
77
|
+
* entity, record id, a display title, and the highlighted `matched` columns —
|
|
78
|
+
* plus `total`/`nextFrom` for paging. (The raw service returns every indexed
|
|
79
|
+
* column of every record as a stringified `SearchResult`; that is far too large
|
|
80
|
+
* to hand to an LLM, so we parse and project it. Use `read` with the id for the
|
|
81
|
+
* full record.)
|
|
82
|
+
*/
|
|
83
|
+
async search(q) {
|
|
84
|
+
// `GlobalSearchService.Search(queryString, sectionEntityName, recordCount, type="", from=0)`
|
|
85
|
+
// — the first three parameters have no defaults, so the WCF Wrapped body MUST
|
|
86
|
+
// include them or binding fails with HTTP 400. `type` is optional; only send it
|
|
87
|
+
// when filtering, mirroring the UI call.
|
|
88
|
+
const body = {
|
|
89
|
+
queryString: q.query,
|
|
90
|
+
sectionEntityName: q.sectionEntityName ?? '',
|
|
91
|
+
recordCount: q.recordCount ?? DEFAULT_RECORD_COUNT,
|
|
92
|
+
from: q.from ?? 0,
|
|
93
|
+
};
|
|
94
|
+
if (q.type) {
|
|
95
|
+
body.type = q.type;
|
|
96
|
+
}
|
|
97
|
+
const response = await this._configuration.call({
|
|
98
|
+
service: SEARCH_SERVICE,
|
|
99
|
+
method: 'Search',
|
|
100
|
+
httpMethod: 'POST',
|
|
101
|
+
body,
|
|
102
|
+
});
|
|
103
|
+
return this._project(response.body);
|
|
104
|
+
}
|
|
116
105
|
}
|
|
117
106
|
exports.GlobalSearchClient = GlobalSearchClient;
|
|
118
107
|
//# sourceMappingURL=globalsearch-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalsearch-client.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globalsearch-client.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ export declare const GLOBAL_SEARCH_CAPABILITY = "global-search";
|
|
|
8
8
|
* stays agnostic (Open/Closed: adding capabilities = adding preparers).
|
|
9
9
|
*/
|
|
10
10
|
export declare class GlobalSearchToolPreparer implements ToolPreparer {
|
|
11
|
-
readonly name = "global-search";
|
|
12
11
|
private readonly _client;
|
|
12
|
+
readonly name = "global-search";
|
|
13
13
|
constructor(client: GlobalSearchClient);
|
|
14
14
|
prepare(registrar: ToolRegistrar): Promise<boolean>;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalsearch-tool-preparer.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,6BAA6B;AAC7B,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC5D,
|
|
1
|
+
{"version":3,"file":"globalsearch-tool-preparer.d.ts","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,6BAA6B;AAC7B,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAExD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,YAAY;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAE7C,SAAgB,IAAI,mBAA4B;gBAEpC,MAAM,EAAE,kBAAkB;IAIzB,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBhE"}
|
|
@@ -11,8 +11,8 @@ exports.GLOBAL_SEARCH_CAPABILITY = 'global-search';
|
|
|
11
11
|
* stays agnostic (Open/Closed: adding capabilities = adding preparers).
|
|
12
12
|
*/
|
|
13
13
|
class GlobalSearchToolPreparer {
|
|
14
|
-
name = exports.GLOBAL_SEARCH_CAPABILITY;
|
|
15
14
|
_client;
|
|
15
|
+
name = exports.GLOBAL_SEARCH_CAPABILITY;
|
|
16
16
|
constructor(client) {
|
|
17
17
|
this._client = client;
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalsearch-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAEhD,8CAA0E;AAI1E,6BAA6B;AAChB,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAExD;;;;GAIG;AACH,MAAa,wBAAwB;
|
|
1
|
+
{"version":3,"file":"globalsearch-tool-preparer.js","sourceRoot":"","sources":["../../../../src/server/mcp/globalsearch/globalsearch-tool-preparer.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAEhD,8CAA0E;AAI1E,6BAA6B;AAChB,QAAA,wBAAwB,GAAG,eAAe,CAAC;AAExD;;;;GAIG;AACH,MAAa,wBAAwB;IACnB,OAAO,CAAqB;IAE7B,IAAI,GAAG,gCAAwB,CAAC;IAEhD,YAAY,MAA0B;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,SAAwB;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;QACd,CAAC;QACD,SAAS,CAAC,QAAQ,CACjB,eAAe,EACf,mCAAsB,EACtB,IAAA,sBAAc,EAAC,8BAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CACtE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACnB,KAAK;YACL,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YACtE,WAAW,EAAE,KAAK;YAClB,IAAI;SACJ,CAAC,CACF,CACD,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA5BD,4DA4BC"}
|
|
@@ -9,10 +9,13 @@ export interface ServerConfig {
|
|
|
9
9
|
disableGlobalSearch?: boolean;
|
|
10
10
|
}
|
|
11
11
|
export declare class Server {
|
|
12
|
+
private static readonly PROBE_RETRY_COOLDOWN_MS;
|
|
12
13
|
private readonly _engines;
|
|
13
14
|
private readonly _descriptors;
|
|
14
15
|
private readonly _handlers;
|
|
15
|
-
private
|
|
16
|
+
private readonly _sessionServers;
|
|
17
|
+
private _probeComplete;
|
|
18
|
+
private _probeInFlight;
|
|
16
19
|
private _readonly;
|
|
17
20
|
private _serverName;
|
|
18
21
|
private _serverVersion;
|
|
@@ -22,9 +25,10 @@ export declare class Server {
|
|
|
22
25
|
private readonly _publishedToolsPreparer;
|
|
23
26
|
private readonly _preparers;
|
|
24
27
|
private readonly _capabilities;
|
|
28
|
+
private readonly _probeCooldownUntil;
|
|
25
29
|
get authProvider(): ICreatioAuthProvider;
|
|
26
30
|
constructor(engines: CreatioEngineManager, config: ServerConfig);
|
|
27
|
-
private
|
|
31
|
+
private _registerAllInto;
|
|
28
32
|
private _registerHandlerWithDescriptor;
|
|
29
33
|
private _normalizeToToolHandler;
|
|
30
34
|
private _registerAsTool;
|
|
@@ -32,10 +36,13 @@ export declare class Server {
|
|
|
32
36
|
/** Adapter exposing handler registration to {@link ToolPreparer}s. */
|
|
33
37
|
private _toolRegistrar;
|
|
34
38
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
+
* Probe each optional-capability preparer that has no verdict yet and let it register its tools
|
|
40
|
+
* when available. A preparer that returns cleanly (true/false) gets a recorded verdict and is
|
|
41
|
+
* never re-probed; one that THROWS (e.g. the caller's identity isn't usable yet) records nothing
|
|
42
|
+
* so a later authenticated connect can retry it — which also makes registration idempotent (an
|
|
43
|
+
* already-enabled preparer is skipped, so its tools are never registered twice). Invoked from
|
|
44
|
+
* {@link ensureCapabilitiesProbed} within a request context so probe calls carry the caller's
|
|
45
|
+
* identity. Returns whether EVERY preparer now has a verdict (the probe is complete).
|
|
39
46
|
*/
|
|
40
47
|
private _prepareTools;
|
|
41
48
|
/** Whether DataForge was probed as enabled at startup. */
|
|
@@ -57,7 +64,27 @@ export declare class Server {
|
|
|
57
64
|
*/
|
|
58
65
|
private _clientToolDefs;
|
|
59
66
|
private _registerClientTools;
|
|
60
|
-
|
|
61
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Build a fresh {@link McpServer} for one transport/session, with the full known tool +
|
|
69
|
+
* prompt surface registered, and track it so the capability probe can later push
|
|
70
|
+
* late-discovered tools into it. Each session MUST get its own server (a single McpServer
|
|
71
|
+
* connects to only one transport).
|
|
72
|
+
*/
|
|
73
|
+
createSessionServer(): McpServer;
|
|
74
|
+
/**
|
|
75
|
+
* Probe optional capabilities once per process, WITHOUT blocking the MCP handshake. These do
|
|
76
|
+
* network I/O (DataForge/Global Search probes, and the publishing app's tools/list, which can
|
|
77
|
+
* be slow) — awaiting would delay connect past the client's init timeout. Discovered tools
|
|
78
|
+
* register into every live session server as they resolve (the SDK emits
|
|
79
|
+
* notifications/tools/list_changed) and into the maps for future sessions.
|
|
80
|
+
*
|
|
81
|
+
* MUST be called from within the per-request context ({@link runWithContext}) so the probe's
|
|
82
|
+
* Creatio calls carry the caller's identity/token — otherwise broker mode resolves no user.
|
|
83
|
+
*/
|
|
84
|
+
ensureCapabilitiesProbed(): void;
|
|
85
|
+
/** Untrack and close one session's server (call when its transport closes). */
|
|
86
|
+
releaseSessionServer(mcp: McpServer): void;
|
|
87
|
+
/** Close every live session server (process shutdown). */
|
|
88
|
+
stopAll(): Promise<void>;
|
|
62
89
|
}
|
|
63
90
|
//# sourceMappingURL=server.d.ts.map
|