@1mcp/agent 0.29.1 → 0.30.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/commands/serve/index.d.ts +58 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +70 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/serve.d.ts +11 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +73 -1
- package/build/commands/serve/serve.js.map +1 -1
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +42 -18
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/core/capabilities/capabilityManager.d.ts +3 -2
- package/build/core/capabilities/capabilityManager.d.ts.map +1 -1
- package/build/core/capabilities/capabilityManager.js +3 -3
- package/build/core/capabilities/capabilityManager.js.map +1 -1
- package/build/core/capabilities/internal/installationTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/installationTools.js +4 -0
- package/build/core/capabilities/internal/installationTools.js.map +1 -1
- package/build/core/capabilities/internal/lazyTools.d.ts +11 -0
- package/build/core/capabilities/internal/lazyTools.d.ts.map +1 -0
- package/build/core/capabilities/internal/lazyTools.js +48 -0
- package/build/core/capabilities/internal/lazyTools.js.map +1 -0
- package/build/core/capabilities/internal/managementTools.d.ts.map +1 -1
- package/build/core/capabilities/internal/managementTools.js +9 -0
- package/build/core/capabilities/internal/managementTools.js.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts +7 -1
- package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
- package/build/core/capabilities/internalCapabilitiesProvider.js +31 -2
- package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +175 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.js +515 -0
- package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -0
- package/build/core/capabilities/metaToolProvider.d.ts +118 -0
- package/build/core/capabilities/metaToolProvider.d.ts.map +1 -0
- package/build/core/capabilities/metaToolProvider.js +374 -0
- package/build/core/capabilities/metaToolProvider.js.map +1 -0
- package/build/core/capabilities/schemaCache.d.ts +124 -0
- package/build/core/capabilities/schemaCache.d.ts.map +1 -0
- package/build/core/capabilities/schemaCache.js +248 -0
- package/build/core/capabilities/schemaCache.js.map +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts +92 -0
- package/build/core/capabilities/schemas/metaToolSchemas.d.ts.map +1 -0
- package/build/core/capabilities/schemas/metaToolSchemas.js +68 -0
- package/build/core/capabilities/schemas/metaToolSchemas.js.map +1 -0
- package/build/core/capabilities/toolRegistry.d.ts +140 -0
- package/build/core/capabilities/toolRegistry.d.ts.map +1 -0
- package/build/core/capabilities/toolRegistry.js +284 -0
- package/build/core/capabilities/toolRegistry.js.map +1 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +11 -5
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/flags/flagManager.d.ts.map +1 -1
- package/build/core/flags/flagManager.js +14 -1
- package/build/core/flags/flagManager.js.map +1 -1
- package/build/core/instructions/instructionAggregator.d.ts +21 -0
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +78 -3
- package/build/core/instructions/instructionAggregator.js.map +1 -1
- package/build/core/instructions/templateTypes.d.ts +40 -1
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +70 -0
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/protocol/requestHandlers.d.ts +2 -1
- package/build/core/protocol/requestHandlers.d.ts.map +1 -1
- package/build/core/protocol/requestHandlers.js +112 -84
- package/build/core/protocol/requestHandlers.js.map +1 -1
- package/build/core/server/adapters/ExternalServerAdapter.d.ts +38 -0
- package/build/core/server/adapters/ExternalServerAdapter.d.ts.map +1 -0
- package/build/core/server/adapters/ExternalServerAdapter.js +50 -0
- package/build/core/server/adapters/ExternalServerAdapter.js.map +1 -0
- package/build/core/server/adapters/ServerRegistry.d.ts +63 -0
- package/build/core/server/adapters/ServerRegistry.d.ts.map +1 -0
- package/build/core/server/adapters/ServerRegistry.js +92 -0
- package/build/core/server/adapters/ServerRegistry.js.map +1 -0
- package/build/core/server/adapters/TemplateServerAdapter.d.ts +47 -0
- package/build/core/server/adapters/TemplateServerAdapter.d.ts.map +1 -0
- package/build/core/server/adapters/TemplateServerAdapter.js +99 -0
- package/build/core/server/adapters/TemplateServerAdapter.js.map +1 -0
- package/build/core/server/adapters/index.d.ts +5 -0
- package/build/core/server/adapters/index.d.ts.map +1 -0
- package/build/core/server/adapters/index.js +6 -0
- package/build/core/server/adapters/index.js.map +1 -0
- package/build/core/server/adapters/types.d.ts +122 -0
- package/build/core/server/adapters/types.d.ts.map +1 -0
- package/build/core/server/adapters/types.js +48 -0
- package/build/core/server/adapters/types.js.map +1 -0
- package/build/core/server/agentConfig.d.ts +19 -0
- package/build/core/server/agentConfig.d.ts.map +1 -1
- package/build/core/server/agentConfig.js +19 -0
- package/build/core/server/agentConfig.js.map +1 -1
- package/build/core/server/connectionManager.d.ts +17 -1
- package/build/core/server/connectionManager.d.ts.map +1 -1
- package/build/core/server/connectionManager.js +65 -5
- package/build/core/server/connectionManager.js.map +1 -1
- package/build/core/server/connectionResolver.d.ts +81 -0
- package/build/core/server/connectionResolver.d.ts.map +1 -0
- package/build/core/server/connectionResolver.js +140 -0
- package/build/core/server/connectionResolver.js.map +1 -0
- package/build/core/server/serverManager.d.ts +13 -0
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +49 -2
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/server/templateServerManager.d.ts +16 -0
- package/build/core/server/templateServerManager.d.ts.map +1 -1
- package/build/core/server/templateServerManager.js +45 -0
- package/build/core/server/templateServerManager.js.map +1 -1
- package/build/domains/preset/manager/presetManager.d.ts +5 -0
- package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
- package/build/domains/preset/manager/presetManager.js +7 -0
- package/build/domains/preset/manager/presetManager.js.map +1 -1
- package/build/logger/logger.d.ts +13 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +41 -0
- package/build/logger/logger.js.map +1 -1
- package/build/server.d.ts +3 -0
- package/build/server.d.ts.map +1 -1
- package/build/server.js +32 -0
- package/build/server.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +71 -1
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateServerAdapter.d.ts","sourceRoot":"","sources":["../../../../src/core/server/adapters/TemplateServerAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAiC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnH;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IAIvD,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC,QAAQ,CAAC,IAAI,uBAAuB;gBAGzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACf,aAAa,EAAE,mBAAmB,EAClC,eAAe,EAAE,qBAAqB;IAGzD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;;OAGG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS;IA2B1E;;OAEG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY;IAKhD;;OAEG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO;IAK7C;;;OAGG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;CAQ9D"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { debugIf, errorIf } from '../../../logger/logger.js';
|
|
2
|
+
import { mapClientStatusToServerStatus, ServerStatus, ServerType } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* TemplateServerAdapter handles template-based MCP servers with dynamic connections.
|
|
5
|
+
*
|
|
6
|
+
* Template servers are instantiated per session with rendered configurations.
|
|
7
|
+
* They can be either:
|
|
8
|
+
* - Shareable: Multiple sessions share the same instance (key: name:renderedHash)
|
|
9
|
+
* - Per-client: Each session gets its own instance (key: name:sessionId)
|
|
10
|
+
*
|
|
11
|
+
* The adapter wraps TemplateServerManager for session-to-hash lookups and uses
|
|
12
|
+
* the existing OutboundConnections map for connection data.
|
|
13
|
+
*/
|
|
14
|
+
export class TemplateServerAdapter {
|
|
15
|
+
name;
|
|
16
|
+
config;
|
|
17
|
+
outboundConns;
|
|
18
|
+
templateManager;
|
|
19
|
+
type = ServerType.Template;
|
|
20
|
+
constructor(name, config, outboundConns, templateManager) {
|
|
21
|
+
this.name = name;
|
|
22
|
+
this.config = config;
|
|
23
|
+
this.outboundConns = outboundConns;
|
|
24
|
+
this.templateManager = templateManager;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Build the possible connection keys for a session.
|
|
28
|
+
* Returns keys in priority order: session-scoped first, then hash-based.
|
|
29
|
+
*/
|
|
30
|
+
buildConnectionKeys(sessionId) {
|
|
31
|
+
const keys = [`${this.name}:${sessionId}`];
|
|
32
|
+
try {
|
|
33
|
+
const renderedHash = this.templateManager.getRenderedHashForSession(sessionId, this.name);
|
|
34
|
+
if (renderedHash) {
|
|
35
|
+
keys.push(`${this.name}:${renderedHash}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
40
|
+
errorIf(() => ({
|
|
41
|
+
message: `Failed to get rendered hash for template server`,
|
|
42
|
+
meta: { serverName: this.name, sessionId, error: errorMessage },
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
return keys;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolve the outbound connection for this template server.
|
|
49
|
+
* Uses session-based resolution with hash lookup for shareable servers.
|
|
50
|
+
*/
|
|
51
|
+
resolveConnection(context) {
|
|
52
|
+
const sessionId = context?.sessionId;
|
|
53
|
+
if (!sessionId) {
|
|
54
|
+
debugIf(() => ({
|
|
55
|
+
message: 'TemplateServerAdapter: No sessionId provided in context',
|
|
56
|
+
meta: { serverName: this.name },
|
|
57
|
+
}));
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
const keys = this.buildConnectionKeys(sessionId);
|
|
61
|
+
for (const key of keys) {
|
|
62
|
+
const conn = this.outboundConns.get(key);
|
|
63
|
+
if (conn) {
|
|
64
|
+
return conn;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
debugIf(() => ({
|
|
68
|
+
message: 'TemplateServerAdapter: No connection found for template server',
|
|
69
|
+
meta: { serverName: this.name, sessionId, attemptedKeys: keys },
|
|
70
|
+
}));
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get the current status of this template server.
|
|
75
|
+
*/
|
|
76
|
+
getStatus(context) {
|
|
77
|
+
const conn = this.resolveConnection(context);
|
|
78
|
+
return conn ? mapClientStatusToServerStatus(conn.status) : ServerStatus.Disconnected;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Check if this template server is available for the given context.
|
|
82
|
+
*/
|
|
83
|
+
isAvailable(context) {
|
|
84
|
+
const status = this.getStatus(context);
|
|
85
|
+
return status === ServerStatus.Connected;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the connection key for this template server.
|
|
89
|
+
* Returns the key used in the outbound connections map.
|
|
90
|
+
*/
|
|
91
|
+
getConnectionKey(context) {
|
|
92
|
+
const sessionId = context?.sessionId;
|
|
93
|
+
if (!sessionId) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return this.buildConnectionKeys(sessionId).find((key) => this.outboundConns.has(key));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=TemplateServerAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplateServerAdapter.js","sourceRoot":"","sources":["../../../../src/core/server/adapters/TemplateServerAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/server/adapters/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/server/adapters/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,YAAY,CAAC;AAC3B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { OutboundConnection } from '../../../core/types/client.js';
|
|
2
|
+
import { ClientStatus } from '../../../core/types/client.js';
|
|
3
|
+
import type { MCPServerParams } from '../../../core/types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Server types supported by 1MCP
|
|
6
|
+
*/
|
|
7
|
+
export declare enum ServerType {
|
|
8
|
+
/** External MCP servers configured in mcp.json */
|
|
9
|
+
External = "external",
|
|
10
|
+
/** Template-based servers that render per session */
|
|
11
|
+
Template = "template",
|
|
12
|
+
/** Internal 1MCP tools and capabilities */
|
|
13
|
+
Internal = "internal"
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Server status enumeration
|
|
17
|
+
*/
|
|
18
|
+
export declare enum ServerStatus {
|
|
19
|
+
/** Server is connected and ready */
|
|
20
|
+
Connected = "connected",
|
|
21
|
+
/** Server is disconnected */
|
|
22
|
+
Disconnected = "disconnected",
|
|
23
|
+
/** Server is in error state */
|
|
24
|
+
Error = "error",
|
|
25
|
+
/** Server is awaiting OAuth authorization */
|
|
26
|
+
AwaitingOAuth = "awaiting_oauth",
|
|
27
|
+
/** Server is being initialized */
|
|
28
|
+
Initializing = "initializing"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Context information for server operations
|
|
32
|
+
*/
|
|
33
|
+
export interface ServerContext {
|
|
34
|
+
/** Session ID for the current request */
|
|
35
|
+
sessionId?: string;
|
|
36
|
+
/** Additional context data */
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* ServerAdapter provides a unified interface for all server types.
|
|
41
|
+
*
|
|
42
|
+
* This interface abstracts the differences between:
|
|
43
|
+
* - External servers (static connections)
|
|
44
|
+
* - Template servers (session-based or hash-based connections)
|
|
45
|
+
* - Internal servers (1MCP built-in capabilities)
|
|
46
|
+
*
|
|
47
|
+
* Each adapter implementation handles the specific connection resolution
|
|
48
|
+
* logic for its server type.
|
|
49
|
+
*/
|
|
50
|
+
export interface ServerAdapter {
|
|
51
|
+
/**
|
|
52
|
+
* The server name (clean name without hash or session suffix)
|
|
53
|
+
*/
|
|
54
|
+
readonly name: string;
|
|
55
|
+
/**
|
|
56
|
+
* The server type
|
|
57
|
+
*/
|
|
58
|
+
readonly type: ServerType;
|
|
59
|
+
/**
|
|
60
|
+
* The server configuration
|
|
61
|
+
*/
|
|
62
|
+
readonly config: MCPServerParams;
|
|
63
|
+
/**
|
|
64
|
+
* Resolve the outbound connection for this server.
|
|
65
|
+
*
|
|
66
|
+
* For external servers: Returns the static connection
|
|
67
|
+
* For template servers: Resolves based on session/hash
|
|
68
|
+
* For internal servers: Returns the internal connection
|
|
69
|
+
*
|
|
70
|
+
* @param context Optional context for resolution (e.g., sessionId)
|
|
71
|
+
* @returns The resolved outbound connection or undefined
|
|
72
|
+
*/
|
|
73
|
+
resolveConnection(context?: ServerContext): OutboundConnection | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Get the current status of this server
|
|
76
|
+
*
|
|
77
|
+
* @param context Optional context for status check
|
|
78
|
+
* @returns The server status
|
|
79
|
+
*/
|
|
80
|
+
getStatus(context?: ServerContext): ServerStatus;
|
|
81
|
+
/**
|
|
82
|
+
* Check if this server is available for the given context
|
|
83
|
+
*
|
|
84
|
+
* @param context Optional context for availability check
|
|
85
|
+
* @returns True if server is available
|
|
86
|
+
*/
|
|
87
|
+
isAvailable(context?: ServerContext): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Get the connection key used in the outbound connections map
|
|
90
|
+
*
|
|
91
|
+
* For external servers: Returns the server name
|
|
92
|
+
* For template servers: Returns name:hash or name:sessionId
|
|
93
|
+
* For internal servers: Returns the internal identifier
|
|
94
|
+
*
|
|
95
|
+
* @param context Optional context for key resolution
|
|
96
|
+
* @returns The connection key or undefined
|
|
97
|
+
*/
|
|
98
|
+
getConnectionKey(context?: ServerContext): string | undefined;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Factory function type for creating server adapters
|
|
102
|
+
*/
|
|
103
|
+
export type ServerAdapterFactory = (name: string, config: MCPServerParams, ...args: unknown[]) => ServerAdapter;
|
|
104
|
+
/**
|
|
105
|
+
* Options for server adapter creation
|
|
106
|
+
*/
|
|
107
|
+
export interface ServerAdapterOptions {
|
|
108
|
+
/** Server name */
|
|
109
|
+
name: string;
|
|
110
|
+
/** Server configuration */
|
|
111
|
+
config: MCPServerParams;
|
|
112
|
+
/** Server type */
|
|
113
|
+
type: ServerType;
|
|
114
|
+
/** Additional adapter-specific options */
|
|
115
|
+
metadata?: Record<string, unknown>;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Map ClientStatus to ServerStatus.
|
|
119
|
+
* Shared utility to eliminate duplication across adapters.
|
|
120
|
+
*/
|
|
121
|
+
export declare function mapClientStatusToServerStatus(status: ClientStatus): ServerStatus;
|
|
122
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/server/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE;;GAEG;AACH,oBAAY,UAAU;IACpB,kDAAkD;IAClD,QAAQ,aAAa;IACrB,qDAAqD;IACrD,QAAQ,aAAa;IACrB,2CAA2C;IAC3C,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,oCAAoC;IACpC,SAAS,cAAc;IACvB,6BAA6B;IAC7B,YAAY,iBAAiB;IAC7B,+BAA+B;IAC/B,KAAK,UAAU;IACf,6CAA6C;IAC7C,aAAa,mBAAmB;IAChC,kCAAkC;IAClC,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAEjC;;;;;;;;;OASG;IACH,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAE3E;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAEjD;;;;;OAKG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAE9C;;;;;;;;;OASG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,aAAa,CAAC;AAEhH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,MAAM,EAAE,eAAe,CAAC;IACxB,kBAAkB;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAahF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ClientStatus } from '../../../core/types/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Server types supported by 1MCP
|
|
4
|
+
*/
|
|
5
|
+
export var ServerType;
|
|
6
|
+
(function (ServerType) {
|
|
7
|
+
/** External MCP servers configured in mcp.json */
|
|
8
|
+
ServerType["External"] = "external";
|
|
9
|
+
/** Template-based servers that render per session */
|
|
10
|
+
ServerType["Template"] = "template";
|
|
11
|
+
/** Internal 1MCP tools and capabilities */
|
|
12
|
+
ServerType["Internal"] = "internal";
|
|
13
|
+
})(ServerType || (ServerType = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Server status enumeration
|
|
16
|
+
*/
|
|
17
|
+
export var ServerStatus;
|
|
18
|
+
(function (ServerStatus) {
|
|
19
|
+
/** Server is connected and ready */
|
|
20
|
+
ServerStatus["Connected"] = "connected";
|
|
21
|
+
/** Server is disconnected */
|
|
22
|
+
ServerStatus["Disconnected"] = "disconnected";
|
|
23
|
+
/** Server is in error state */
|
|
24
|
+
ServerStatus["Error"] = "error";
|
|
25
|
+
/** Server is awaiting OAuth authorization */
|
|
26
|
+
ServerStatus["AwaitingOAuth"] = "awaiting_oauth";
|
|
27
|
+
/** Server is being initialized */
|
|
28
|
+
ServerStatus["Initializing"] = "initializing";
|
|
29
|
+
})(ServerStatus || (ServerStatus = {}));
|
|
30
|
+
/**
|
|
31
|
+
* Map ClientStatus to ServerStatus.
|
|
32
|
+
* Shared utility to eliminate duplication across adapters.
|
|
33
|
+
*/
|
|
34
|
+
export function mapClientStatusToServerStatus(status) {
|
|
35
|
+
switch (status) {
|
|
36
|
+
case ClientStatus.Connected:
|
|
37
|
+
return ServerStatus.Connected;
|
|
38
|
+
case ClientStatus.Disconnected:
|
|
39
|
+
return ServerStatus.Disconnected;
|
|
40
|
+
case ClientStatus.Error:
|
|
41
|
+
return ServerStatus.Error;
|
|
42
|
+
case ClientStatus.AwaitingOAuth:
|
|
43
|
+
return ServerStatus.AwaitingOAuth;
|
|
44
|
+
default:
|
|
45
|
+
return ServerStatus.Disconnected;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/server/adapters/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;GAEG;AACH,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,kDAAkD;IAClD,mCAAqB,CAAA;IACrB,qDAAqD;IACrD,mCAAqB,CAAA;IACrB,2CAA2C;IAC3C,mCAAqB,CAAA;AACvB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,oCAAoC;IACpC,uCAAuB,CAAA;IACvB,6BAA6B;IAC7B,6CAA6B,CAAA;IAC7B,+BAA+B;IAC/B,+BAAe,CAAA;IACf,6CAA6C;IAC7C,gDAAgC,CAAA;IAChC,kCAAkC;IAClC,6CAA6B,CAAA;AAC/B,CAAC,EAXW,YAAY,KAAZ,YAAY,QAWvB;AAmGD;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAoB;IAChE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC,SAAS;YACzB,OAAO,YAAY,CAAC,SAAS,CAAC;QAChC,KAAK,YAAY,CAAC,YAAY;YAC5B,OAAO,YAAY,CAAC,YAAY,CAAC;QACnC,KAAK,YAAY,CAAC,KAAK;YACrB,OAAO,YAAY,CAAC,KAAK,CAAC;QAC5B,KAAK,YAAY,CAAC,aAAa;YAC7B,OAAO,YAAY,CAAC,aAAa,CAAC;QACpC;YACE,OAAO,YAAY,CAAC,YAAY,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -43,6 +43,25 @@ export interface AgentConfig {
|
|
|
43
43
|
batchNotifications: boolean;
|
|
44
44
|
batchDelayMs: number;
|
|
45
45
|
};
|
|
46
|
+
lazyLoading: {
|
|
47
|
+
enabled: boolean;
|
|
48
|
+
inlineCatalog: boolean;
|
|
49
|
+
catalogFormat: 'flat' | 'grouped' | 'categorized';
|
|
50
|
+
directExpose: string[];
|
|
51
|
+
cache: {
|
|
52
|
+
maxEntries: number;
|
|
53
|
+
strategy: 'lru';
|
|
54
|
+
ttlMs?: number;
|
|
55
|
+
};
|
|
56
|
+
preload: {
|
|
57
|
+
patterns: string[];
|
|
58
|
+
keywords: string[];
|
|
59
|
+
};
|
|
60
|
+
fallback: {
|
|
61
|
+
onError: 'skip' | 'full';
|
|
62
|
+
timeoutMs: number;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
46
65
|
configReload: {
|
|
47
66
|
debounceMs: number;
|
|
48
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;KAC3C,CAAC;IACF,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,kBAAkB,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;
|
|
1
|
+
{"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,aAAa,EAAE,OAAO,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;KAC3C,CAAC;IACF,YAAY,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,mBAAmB,EAAE,OAAO,CAAC;QAC7B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAAC;QAClD,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,KAAK,EAAE;YACL,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,KAAK,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;QACF,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;YACzB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,YAAY,EAAE;QACZ,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,kBAAkB,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;IAqEP;;;;;;;OAOG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAOxD;;;;;;;OAOG;IACI,SAAS,IAAI,WAAW;IAI/B;;;;;;;;;;;;;;;;;;;OAmBG;IACI,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAKxD,MAAM,IAAI,MAAM;IAIhB,mBAAmB,IAAI,MAAM;IAI7B,aAAa,IAAI,MAAM,GAAG,OAAO;IAIjC,aAAa,IAAI,OAAO;IAIxB,qBAAqB,IAAI,OAAO;IAIhC,qBAAqB,IAAI,OAAO;IAIhC,wBAAwB,IAAI,OAAO;IAInC,yBAAyB,IAAI,OAAO;IAIpC,oBAAoB,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS;IAIpD,4BAA4B,IAAI,OAAO;IAIvC,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAI3C,oBAAoB,IAAI,MAAM;IAI9B,iBAAiB,IAAI,MAAM;IAI3B,kBAAkB,IAAI,MAAM;IAI5B,oBAAoB,IAAI,MAAM;IAI9B,eAAe,IAAI,MAAM;IAIzB,wBAAwB,IAAI,OAAO;IAInC,yBAAyB,IAAI,MAAM;IAInC,2BAA2B,IAAI,OAAO;IAItC,eAAe,IAAI,MAAM;IAIzB,4BAA4B,IAAI,OAAO;IAIvC,2BAA2B,IAAI,OAAO;IAItC,yBAAyB,IAAI,MAAM;IAInC,gCAAgC,IAAI,MAAM;IAI1C,gCAAgC,IAAI,MAAM;IAI1C,4BAA4B,IAAI,OAAO;IAKvC,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAStD;;;;;;;OAOG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;CAUvF"}
|
|
@@ -80,6 +80,25 @@ export class AgentConfigManager {
|
|
|
80
80
|
batchNotifications: true,
|
|
81
81
|
batchDelayMs: 1000, // 1 second
|
|
82
82
|
},
|
|
83
|
+
lazyLoading: {
|
|
84
|
+
enabled: false, // Default: disabled (opt-in behavior)
|
|
85
|
+
inlineCatalog: false, // Don't include full catalog by default
|
|
86
|
+
catalogFormat: 'grouped', // Group tools by server
|
|
87
|
+
directExpose: [], // No direct exposure by default
|
|
88
|
+
cache: {
|
|
89
|
+
maxEntries: 1000, // LRU cache max entries
|
|
90
|
+
strategy: 'lru', // Only LRU supported currently
|
|
91
|
+
ttlMs: undefined, // No TTL by default (LRU only)
|
|
92
|
+
},
|
|
93
|
+
preload: {
|
|
94
|
+
patterns: [], // No preload patterns by default
|
|
95
|
+
keywords: [], // No preload keywords by default
|
|
96
|
+
},
|
|
97
|
+
fallback: {
|
|
98
|
+
onError: 'skip', // Skip failed tools, don't fallback to full
|
|
99
|
+
timeoutMs: 5000, // 5 second timeout for on-demand loading
|
|
100
|
+
},
|
|
101
|
+
},
|
|
83
102
|
configReload: {
|
|
84
103
|
debounceMs: 500,
|
|
85
104
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEzG;;GAEG;AACH,SAAS,SAAS,CAAoC,MAAS,EAAE,MAAkB;IACjF,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC3F,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAA4B,EAC9C,MAAM,CAAC,GAAG,CAA4B,CACR,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAgC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
|
|
2
|
+
import { LazyLoadingOrchestrator } from '../../core/capabilities/lazyLoadingOrchestrator.js';
|
|
2
3
|
import type { OutboundConnections } from '../../core/types/client.js';
|
|
3
4
|
import { InboundConnection, InboundConnectionConfig, OperationOptions } from '../../core/types/index.js';
|
|
4
5
|
import type { ContextData } from '../../types/context.js';
|
|
@@ -12,12 +13,21 @@ export declare class ConnectionManager {
|
|
|
12
13
|
private inboundConns;
|
|
13
14
|
private connectionSemaphore;
|
|
14
15
|
private disconnectingIds;
|
|
16
|
+
private lazyLoadingOrchestrator?;
|
|
15
17
|
constructor(serverConfig: {
|
|
16
18
|
name: string;
|
|
17
19
|
version: string;
|
|
18
20
|
}, serverCapabilities: {
|
|
19
21
|
capabilities: Record<string, unknown>;
|
|
20
|
-
}, outboundConns: OutboundConnections);
|
|
22
|
+
}, outboundConns: OutboundConnections, lazyLoadingOrchestrator?: LazyLoadingOrchestrator);
|
|
23
|
+
/**
|
|
24
|
+
* Set the lazy loading orchestrator
|
|
25
|
+
*/
|
|
26
|
+
setLazyLoadingOrchestrator(orchestrator: LazyLoadingOrchestrator): void;
|
|
27
|
+
/**
|
|
28
|
+
* Get the lazy loading orchestrator
|
|
29
|
+
*/
|
|
30
|
+
getLazyLoadingOrchestrator(): LazyLoadingOrchestrator | undefined;
|
|
21
31
|
/**
|
|
22
32
|
* Connect a transport with the given session ID and configuration
|
|
23
33
|
*/
|
|
@@ -58,6 +68,12 @@ export declare class ConnectionManager {
|
|
|
58
68
|
* Do the actual connection work
|
|
59
69
|
*/
|
|
60
70
|
private doConnect;
|
|
71
|
+
/**
|
|
72
|
+
* Initialize session filter for lazy loading
|
|
73
|
+
* This applies tag/preset filtering to the session so that tool_list meta-tool
|
|
74
|
+
* returns only tools from filtered servers
|
|
75
|
+
*/
|
|
76
|
+
private initializeSessionFilter;
|
|
61
77
|
/**
|
|
62
78
|
* Register client with preset notification service
|
|
63
79
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/connectionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAC;AAOtH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;GAEG;AACH,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"connectionManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/connectionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAG1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAG5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,gBAAgB,EAAgB,MAAM,0BAA0B,CAAC;AAOtH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD;;GAEG;AACH,qBAAa,iBAAiB;IAO1B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,aAAa;IARvB,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,uBAAuB,CAAC,CAA0B;gBAGhD,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAC/C,kBAAkB,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAC7D,aAAa,EAAE,mBAAmB,EAC1C,uBAAuB,CAAC,EAAE,uBAAuB;IAKnD;;OAEG;IACI,0BAA0B,CAAC,YAAY,EAAE,uBAAuB,GAAG,IAAI;IAI9E;;OAEG;IACI,0BAA0B,IAAI,uBAAuB,GAAG,SAAS;IAIxE;;OAEG;IACU,gBAAgB,CAC3B,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,uBAAuB,EAC7B,OAAO,CAAC,EAAE,WAAW,EACrB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,OAAO,CAAC,IAAI,CAAC;IA2BhB;;OAEG;IACU,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC/F;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7D;;OAEG;IACI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAU9C;;OAEG;IACI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIlE;;OAEG;IACI,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAI9D;;OAEG;IACI,wBAAwB,IAAI,MAAM;IAIzC;;OAEG;IACU,sBAAsB,CAAC,CAAC,EACnC,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAE,CAAC,WAAW,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC;IASb;;OAEG;YACW,iBAAiB;IA6B/B;;OAEG;YACW,SAAS;IAgEvB;;;;OAIG;YACW,uBAAuB;IAiCrC;;OAEG;YACW,wBAAwB;IAoCtC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAStC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
2
2
|
import { setupCapabilities } from '../../core/capabilities/capabilityManager.js';
|
|
3
|
+
import { byCapabilities } from '../../core/filtering/clientFiltering.js';
|
|
4
|
+
import { FilteringService } from '../../core/filtering/filteringService.js';
|
|
3
5
|
import { ServerStatus } from '../../core/types/index.js';
|
|
4
6
|
import { PresetNotificationService, } from '../../domains/preset/services/presetNotificationService.js';
|
|
5
7
|
import logger, { debugIf } from '../../logger/logger.js';
|
|
@@ -15,10 +17,24 @@ export class ConnectionManager {
|
|
|
15
17
|
inboundConns = new Map();
|
|
16
18
|
connectionSemaphore = new Map();
|
|
17
19
|
disconnectingIds = new Set();
|
|
18
|
-
|
|
20
|
+
lazyLoadingOrchestrator;
|
|
21
|
+
constructor(serverConfig, serverCapabilities, outboundConns, lazyLoadingOrchestrator) {
|
|
19
22
|
this.serverConfig = serverConfig;
|
|
20
23
|
this.serverCapabilities = serverCapabilities;
|
|
21
24
|
this.outboundConns = outboundConns;
|
|
25
|
+
this.lazyLoadingOrchestrator = lazyLoadingOrchestrator;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Set the lazy loading orchestrator
|
|
29
|
+
*/
|
|
30
|
+
setLazyLoadingOrchestrator(orchestrator) {
|
|
31
|
+
this.lazyLoadingOrchestrator = orchestrator;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get the lazy loading orchestrator
|
|
35
|
+
*/
|
|
36
|
+
getLazyLoadingOrchestrator() {
|
|
37
|
+
return this.lazyLoadingOrchestrator;
|
|
22
38
|
}
|
|
23
39
|
/**
|
|
24
40
|
* Connect a transport with the given session ID and configuration
|
|
@@ -163,19 +179,26 @@ export class ConnectionManager {
|
|
|
163
179
|
// Create a new server instance for this transport
|
|
164
180
|
const server = new Server(this.serverConfig, serverOptionsWithInstructions);
|
|
165
181
|
// Create server info object, merging context if provided
|
|
182
|
+
// CRITICAL: Ensure sessionId is always set in context for session-scoped filtering
|
|
183
|
+
// This is needed for lazy loading to store and retrieve session filters correctly
|
|
184
|
+
// Priority: opts.context.sessionId > context.sessionId > transport sessionId (fallback)
|
|
185
|
+
const mergedContext = {
|
|
186
|
+
...(context || {}),
|
|
187
|
+
...(opts.context || {}),
|
|
188
|
+
// Use opts.context.sessionId if provided, otherwise fall back to transport sessionId
|
|
189
|
+
sessionId: opts.context?.sessionId || context?.sessionId || sessionId,
|
|
190
|
+
};
|
|
166
191
|
const serverInfo = {
|
|
167
192
|
server,
|
|
168
193
|
status: ServerStatus.Connecting,
|
|
169
194
|
connectedAt: new Date(),
|
|
170
195
|
...opts,
|
|
171
|
-
|
|
172
|
-
// This ensures sessionId is available for session-scoped template server filtering
|
|
173
|
-
context: context ? { ...context, ...opts.context } : opts.context,
|
|
196
|
+
context: mergedContext,
|
|
174
197
|
};
|
|
175
198
|
// Enhance server with logging middleware
|
|
176
199
|
enhanceServerWithLogging(server);
|
|
177
200
|
// Set up capabilities for this server instance
|
|
178
|
-
await setupCapabilities(this.outboundConns, serverInfo);
|
|
201
|
+
await setupCapabilities(this.outboundConns, serverInfo, this.lazyLoadingOrchestrator);
|
|
179
202
|
// Store the server instance
|
|
180
203
|
this.inboundConns.set(sessionId, serverInfo);
|
|
181
204
|
// Connect the transport to the new server instance
|
|
@@ -183,12 +206,49 @@ export class ConnectionManager {
|
|
|
183
206
|
// Update status to Connected after successful connection
|
|
184
207
|
serverInfo.status = ServerStatus.Connected;
|
|
185
208
|
serverInfo.lastConnected = new Date();
|
|
209
|
+
// Initialize session filter for lazy loading if enabled
|
|
210
|
+
if (this.lazyLoadingOrchestrator?.isEnabled()) {
|
|
211
|
+
await this.initializeSessionFilter(sessionId, serverInfo);
|
|
212
|
+
}
|
|
186
213
|
// Register client with preset notification service if preset is used
|
|
187
214
|
if (opts.presetName) {
|
|
188
215
|
await this.registerClientForPresets(sessionId, opts.presetName, serverInfo);
|
|
189
216
|
}
|
|
190
217
|
logger.info(`Connected transport for session ${sessionId}`);
|
|
191
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Initialize session filter for lazy loading
|
|
221
|
+
* This applies tag/preset filtering to the session so that tool_list meta-tool
|
|
222
|
+
* returns only tools from filtered servers
|
|
223
|
+
*/
|
|
224
|
+
async initializeSessionFilter(sessionId, serverInfo) {
|
|
225
|
+
if (!this.lazyLoadingOrchestrator) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
// Apply the same filtering chain as used in tools/list handler
|
|
229
|
+
const sessionFilteredConns = this.outboundConns;
|
|
230
|
+
const capabilityFilteredConns = byCapabilities({ tools: {} })(sessionFilteredConns);
|
|
231
|
+
const filteredConns = FilteringService.getFilteredConnections(capabilityFilteredConns, serverInfo);
|
|
232
|
+
// Get the set of filtered server names using clean names from connection.name
|
|
233
|
+
// This ensures consistency with how the tool registry is built
|
|
234
|
+
// Template servers use hash-suffixed keys (e.g., "serena:abc123") but
|
|
235
|
+
// connection.name contains the clean name (e.g., "serena")
|
|
236
|
+
const filteredServerNames = new Set(Array.from(filteredConns.values()).map((conn) => conn.name));
|
|
237
|
+
debugIf(() => ({
|
|
238
|
+
message: 'Initializing session filter for lazy loading',
|
|
239
|
+
meta: {
|
|
240
|
+
sessionId,
|
|
241
|
+
totalServers: this.outboundConns.size,
|
|
242
|
+
filteredServers: filteredServerNames.size,
|
|
243
|
+
serverNames: Array.from(filteredServerNames),
|
|
244
|
+
mapKeys: Array.from(filteredConns.keys()), // For debugging key mismatch
|
|
245
|
+
tagFilterMode: serverInfo.tagFilterMode,
|
|
246
|
+
tags: serverInfo.tags,
|
|
247
|
+
},
|
|
248
|
+
}));
|
|
249
|
+
// Store the session filter so tool_list returns filtered results
|
|
250
|
+
await this.lazyLoadingOrchestrator.getCapabilitiesForFilteredServers(filteredServerNames, sessionId);
|
|
251
|
+
}
|
|
192
252
|
/**
|
|
193
253
|
* Register client with preset notification service
|
|
194
254
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionManager.js","sourceRoot":"","sources":["../../../src/core/server/connectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,OAAO,EAAgE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAEL,yBAAyB,GAC1B,MAAM,2DAA2D,CAAC;AACnE,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"connectionManager.js","sourceRoot":"","sources":["../../../src/core/server/connectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAgE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,EAEL,yBAAyB,GAC1B,MAAM,2DAA2D,CAAC;AACnE,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAOlB;IACA;IACA;IARF,YAAY,GAAmC,IAAI,GAAG,EAAE,CAAC;IACzD,mBAAmB,GAA+B,IAAI,GAAG,EAAE,CAAC;IAC5D,gBAAgB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC1C,uBAAuB,CAA2B;IAE1D,YACU,YAA+C,EAC/C,kBAA6D,EAC7D,aAAkC,EAC1C,uBAAiD;QAHzC,iBAAY,GAAZ,YAAY,CAAmC;QAC/C,uBAAkB,GAAlB,kBAAkB,CAA2C;QAC7D,kBAAa,GAAb,aAAa,CAAqB;QAG1C,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,0BAA0B,CAAC,YAAqC;QACrE,IAAI,CAAC,uBAAuB,GAAG,YAAY,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,0BAA0B;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAC3B,SAAoB,EACpB,SAAiB,EACjB,IAA6B,EAC7B,OAAqB,EACrB,oBAA6B;QAE7B,gEAAgE;QAChE,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,8CAA8C,SAAS,cAAc,CAAC,CAAC;YACnF,MAAM,kBAAkB,CAAC;YACzB,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC5G,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,+BAA+B;YAC/B,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,mBAAmB,CAAC,SAAiB,EAAE,aAAsB,KAAK;QAC7E,wCAAwC;QACxC,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAErC,IAAI,CAAC;gBACH,gCAAgC;gBAChC,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;gBAE1C,mDAAmD;gBACnD,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBAClC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC3E,CAAC;gBACH,CAAC;gBAED,kDAAkD;gBAClD,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,WAAW,EAAE,CAAC;gBACpE,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,4CAA4C,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;gBAEhG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAC;YACjE,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED;;OAEG;IACI,aAAa;QAClB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;QAChD,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5B,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,wBAAwB;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,sBAAsB,CACjC,WAA8B,EAC9B,SAAyD,EACzD,UAA4B,EAAE;QAE9B,qDAAqD;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,8CAA8C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,SAAoB,EACpB,SAAiB,EACjB,IAA6B,EAC7B,OAAqB,EACrB,oBAA6B;QAE7B,yBAAyB;QACzB,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;QAEhD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACtD,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC1G,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAClH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8CAA8C;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC;gBACvC,UAAU,CAAC,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACnF,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,2CAA2C,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACrB,SAAoB,EACpB,SAAiB,EACjB,IAA6B,EAC7B,OAAqB,EACrB,oBAA6B;QAE7B,wDAAwD;QACxD,MAAM,6BAA6B,GAAG;YACpC,GAAG,IAAI,CAAC,kBAAkB;YAC1B,YAAY,EAAE,oBAAoB,IAAI,SAAS;SAChD,CAAC;QAEF,kDAAkD;QAClD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;QAE5E,yDAAyD;QACzD,mFAAmF;QACnF,kFAAkF;QAClF,wFAAwF;QACxF,MAAM,aAAa,GAAG;YACpB,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;YAClB,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YACvB,qFAAqF;YACrF,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,OAAO,EAAE,SAAS,IAAI,SAAS;SACtE,CAAC;QAEF,MAAM,UAAU,GAAsB;YACpC,MAAM;YACN,MAAM,EAAE,YAAY,CAAC,UAAU;YAC/B,WAAW,EAAE,IAAI,IAAI,EAAE;YACvB,GAAG,IAAI;YACP,OAAO,EAAE,aAAa;SACvB,CAAC;QAEF,yCAAyC;QACzC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEjC,+CAA+C;QAC/C,MAAM,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEtF,4BAA4B;QAC5B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE7C,mDAAmD;QACnD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,yDAAyD;QACzD,UAAU,CAAC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC;QAC3C,UAAU,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAEtC,wDAAwD;QACxD,IAAI,IAAI,CAAC,uBAAuB,EAAE,SAAS,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,qEAAqE;QACrE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CAAC,SAAiB,EAAE,UAA6B;QACpF,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;QAChD,MAAM,uBAAuB,GAAG,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC;QACpF,MAAM,aAAa,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAEnG,8EAA8E;QAC9E,+DAA+D;QAC/D,sEAAsE;QACtE,2DAA2D;QAC3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YACb,OAAO,EAAE,8CAA8C;YACvD,IAAI,EAAE;gBACJ,SAAS;gBACT,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;gBACrC,eAAe,EAAE,mBAAmB,CAAC,IAAI;gBACzC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBAC5C,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,6BAA6B;gBACxE,aAAa,EAAE,UAAU,CAAC,aAAa;gBACvC,IAAI,EAAE,UAAU,CAAC,IAAI;aACtB;SACF,CAAC,CAAC,CAAC;QAEJ,iEAAiE;QACjE,MAAM,IAAI,CAAC,uBAAuB,CAAC,iCAAiC,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,SAAiB,EACjB,UAAkB,EAClB,UAA6B;QAE7B,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,WAAW,EAAE,CAAC;QACpE,MAAM,gBAAgB,GAAqB;YACzC,EAAE,EAAE,SAAS;YACb,UAAU;YACV,gBAAgB,EAAE,KAAK,EAAE,MAAc,EAAE,MAAgC,EAAE,EAAE;gBAC3E,IAAI,CAAC;oBACH,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;wBAChF,MAAM,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;wBACvE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;oBAC3F,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;oBACxF,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE;wBACpD,SAAS;wBACT,MAAM;wBACN,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS;SACjG,CAAC;QAEF,mBAAmB,CAAC,WAAW,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;YACxD,SAAS;YACT,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO;QAClB,kDAAkD;QAClD,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF"}
|