@univerjs-pro/mcp 0.10.9 → 0.10.10

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.
@@ -15,7 +15,7 @@ export declare enum MCPConnectionStatus {
15
15
  */
16
16
  export declare enum MCPConnectionError {
17
17
  NONE = "NONE",
18
- INVALID_API_KEY = "INVALID_API_KEY",
18
+ UNAUTHORIZED = "UNAUTHORIZED",
19
19
  SESSION_ID_OCCUPIED = "SESSION_ID_OCCUPIED",
20
20
  NETWORK_ERROR = "NETWORK_ERROR",
21
21
  MAX_RETRIES_EXCEEDED = "MAX_RETRIES_EXCEEDED"
@@ -1,6 +1,6 @@
1
1
  import { Disposable, IConfigService, ILogService, Injector } from '@univerjs/core';
2
2
  import { HTTPService } from '@univerjs/network';
3
- import { MCPUIEventService } from '../services/mcp-ui-event.service';
3
+ import { MCPEventService } from '../services/mcp-event.service';
4
4
  import { MCPConnectionError, MCPConnectionStatus } from './config.schema';
5
5
  /**
6
6
  * MCP WebSocket Message interface
@@ -31,7 +31,7 @@ export declare class MCPConnectionController extends Disposable {
31
31
  private readonly _configService;
32
32
  private readonly _logService;
33
33
  private readonly _httpService;
34
- private readonly _mcpUIEventService;
34
+ private readonly _mcpEventService;
35
35
  private _socket;
36
36
  private _retryCount;
37
37
  private _connectionStatus;
@@ -46,7 +46,7 @@ export declare class MCPConnectionController extends Disposable {
46
46
  readonly sessionId$: import('rxjs').Observable<string>;
47
47
  private readonly _message$;
48
48
  readonly message$: import('rxjs').Observable<IMCPMessage>;
49
- constructor(_injector: Injector, _configService: IConfigService, _logService: ILogService, _httpService: HTTPService, _mcpUIEventService: MCPUIEventService);
49
+ constructor(_injector: Injector, _configService: IConfigService, _logService: ILogService, _httpService: HTTPService, _mcpEventService: MCPEventService);
50
50
  /**
51
51
  * Get current connection status
52
52
  */
@@ -111,11 +111,11 @@ export declare class MCPConnectionController extends Disposable {
111
111
  */
112
112
  private _scheduleReconnect;
113
113
  /**
114
- * Set connection status and emit UI event
114
+ * Set connection status
115
115
  */
116
116
  private _setConnectionStatus;
117
117
  /**
118
- * Set connection error and emit UI event
118
+ * Set connection error
119
119
  */
120
120
  private _setConnectionError;
121
121
  /**
@@ -1,6 +1,6 @@
1
1
  import { Disposable, ILogService } from '@univerjs/core';
2
2
  import { z } from 'zod';
3
- import { MCPUIEventService } from '../services/mcp-ui-event.service';
3
+ import { MCPEventService } from '../services/mcp-event.service';
4
4
  /**
5
5
  * MCP Tool definition interface
6
6
  */
@@ -37,9 +37,9 @@ export declare const IMCPToolRegistry: import('@wendellhu/redi').IdentifierDecor
37
37
  */
38
38
  export declare class MCPToolRegistryController extends Disposable implements IMCPToolRegistry {
39
39
  private readonly _logService;
40
- private readonly _mcpUIEventService;
40
+ private readonly _mcpEventService;
41
41
  private readonly _tools;
42
- constructor(_logService: ILogService, _mcpUIEventService: MCPUIEventService);
42
+ constructor(_logService: ILogService, _mcpEventService: MCPEventService);
43
43
  /**
44
44
  * Register a tool for MCP calls
45
45
  */
@@ -0,0 +1,150 @@
1
+ import { MCPConnectionError, MCPConnectionStatus, MCPEventId } from '@univerjs-pro/mcp';
2
+ import { IEventBase } from '@univerjs/core/facade';
3
+ /**
4
+ * Event triggered when MCP connection status changes
5
+ */
6
+ export interface IMcpConnectionStatusChangedEvent extends IEventBase {
7
+ /**
8
+ * Connection status
9
+ */
10
+ status: MCPConnectionStatus;
11
+ /**
12
+ * Connection error (if any)
13
+ */
14
+ error?: MCPConnectionError;
15
+ /**
16
+ * Status message
17
+ */
18
+ message?: string;
19
+ }
20
+ /**
21
+ * Event triggered when MCP tool call is received
22
+ */
23
+ export interface IMcpToolCallReceivedEvent extends IEventBase {
24
+ /**
25
+ * The name of the tool being called
26
+ */
27
+ toolName: string;
28
+ /**
29
+ * The parameters passed to the tool
30
+ */
31
+ parameters: unknown;
32
+ /**
33
+ * The tool call ID (for tracking)
34
+ */
35
+ callId?: string;
36
+ }
37
+ /**
38
+ * Event triggered when MCP tool call executes successfully
39
+ */
40
+ export interface IMcpToolCallExecutedEvent extends IEventBase {
41
+ /**
42
+ * The name of the tool that was called
43
+ */
44
+ toolName: string;
45
+ /**
46
+ * The tool call ID (for tracking)
47
+ */
48
+ callId?: string;
49
+ /**
50
+ * The result returned by the tool
51
+ */
52
+ result?: unknown;
53
+ }
54
+ /**
55
+ * Event triggered when MCP tool call fails
56
+ */
57
+ export interface IMcpToolCallFailedEvent extends IEventBase {
58
+ /**
59
+ * The name of the tool that failed
60
+ */
61
+ toolName: string;
62
+ /**
63
+ * The tool call ID (for tracking)
64
+ */
65
+ callId?: string;
66
+ /**
67
+ * The error that occurred
68
+ */
69
+ error?: string;
70
+ }
71
+ /**
72
+ * Constants for MCP event names
73
+ * @ignore
74
+ * @example
75
+ * ```typescript
76
+ * // Subscribe to connection status changes
77
+ * univerAPI.addEvent(univerAPI.Event.McpConnectionStatusChanged, (event) => {
78
+ * console.log('Connection status:', event.status);
79
+ * });
80
+ *
81
+ * // Subscribe to tool call events
82
+ * univerAPI.addEvent(univerAPI.Event.McpToolCallReceived, (event) => {
83
+ * console.log('Tool called:', event.toolName);
84
+ * });
85
+ * ```
86
+ */
87
+ export interface IFMCPEventName {
88
+ /**
89
+ * Event triggered when MCP connection status changes
90
+ * @see {@link IMcpConnectionStatusChangedEvent}
91
+ * @example
92
+ * ```typescript
93
+ * univerAPI.addEvent(univerAPI.Event.McpConnectionStatusChanged, (event) => {
94
+ * if (event.status === 'CONNECTED') {
95
+ * console.log('MCP server connected');
96
+ * }
97
+ * });
98
+ * ```
99
+ */
100
+ readonly McpConnectionStatusChanged: typeof MCPEventId.McpConnectionStatusChanged;
101
+ /**
102
+ * Event triggered when MCP tool call is received
103
+ * @see {@link IMcpToolCallReceivedEvent}
104
+ * @example
105
+ * ```typescript
106
+ * univerAPI.addEvent(univerAPI.Event.McpToolCallReceived, (event) => {
107
+ * console.log(`Received tool call: ${event.toolName}`, event.parameters);
108
+ * });
109
+ * ```
110
+ */
111
+ readonly McpToolCallReceived: typeof MCPEventId.McpToolCallReceived;
112
+ /**
113
+ * Event triggered when MCP tool call executes successfully
114
+ * @see {@link IMcpToolCallExecutedEvent}
115
+ * @example
116
+ * ```typescript
117
+ * univerAPI.addEvent(univerAPI.Event.McpToolCallExecuted, (event) => {
118
+ * console.log(`Tool ${event.toolName} executed successfully:`, event.result);
119
+ * });
120
+ * ```
121
+ */
122
+ readonly McpToolCallExecuted: typeof MCPEventId.McpToolCallExecuted;
123
+ /**
124
+ * Event triggered when MCP tool call fails
125
+ * @see {@link IMcpToolCallFailedEvent}
126
+ * @example
127
+ * ```typescript
128
+ * univerAPI.addEvent(univerAPI.Event.McpToolCallFailed, (event) => {
129
+ * console.error(`Tool ${event.toolName} failed:`, event.error);
130
+ * });
131
+ * ```
132
+ */
133
+ readonly McpToolCallFailed: typeof MCPEventId.McpToolCallFailed;
134
+ }
135
+ /**
136
+ * Event configuration for MCP events
137
+ * @ignore
138
+ */
139
+ export interface IMCPEventConfig {
140
+ McpConnectionStatusChanged: IMcpConnectionStatusChangedEvent;
141
+ McpToolCallReceived: IMcpToolCallReceivedEvent;
142
+ McpToolCallExecuted: IMcpToolCallExecutedEvent;
143
+ McpToolCallFailed: IMcpToolCallFailedEvent;
144
+ }
145
+ declare module '@univerjs/core/facade' {
146
+ interface FEventName extends IFMCPEventName {
147
+ }
148
+ interface IEventParamConfig extends IMCPEventConfig {
149
+ }
150
+ }
@@ -1,4 +1,5 @@
1
1
  import { IMCPTool } from '@univerjs-pro/mcp';
2
+ import { Injector } from '@univerjs/core';
2
3
  import { FUniver } from '@univerjs/core/facade';
3
4
  /**
4
5
  * @ignore
@@ -24,8 +25,22 @@ interface IFUniverMCP {
24
25
  * @param params The parameters for the tool.
25
26
  */
26
27
  callMCPTool(toolName: string, params: unknown): Promise<any>;
28
+ /**
29
+ * Get current MCP connection status.
30
+ */
31
+ getMCPConnectionStatus(): string;
32
+ /**
33
+ * Connect to MCP server.
34
+ */
35
+ connectMCP(): void;
36
+ /**
37
+ * Disconnect from MCP server.
38
+ */
39
+ disconnectMCP(): void;
27
40
  }
28
41
  export declare class FUniverMCPMixin extends FUniver implements IFUniverMCP {
42
+ _initialize(injector: Injector): void;
43
+ private _registerMCPFacadeEvents;
29
44
  validateMCPToolCall(toolName: string, params: unknown): {
30
45
  isValid: boolean;
31
46
  error?: string;
@@ -33,6 +48,9 @@ export declare class FUniverMCPMixin extends FUniver implements IFUniverMCP {
33
48
  };
34
49
  getAllMCPTools(): IMCPTool[];
35
50
  callMCPTool(toolName: string, params: unknown): Promise<any>;
51
+ getMCPConnectionStatus(): string;
52
+ connectMCP(): void;
53
+ disconnectMCP(): void;
36
54
  }
37
55
  declare module '@univerjs/core/facade' {
38
56
  interface FUniver extends IFUniverMCP {
@@ -1 +1,3 @@
1
+ import './f-event';
1
2
  import './f-univer';
3
+ export type { IMcpConnectionStatusChangedEvent, IMcpToolCallExecutedEvent, IMcpToolCallFailedEvent, IMcpToolCallReceivedEvent, } from './f-event';
@@ -4,4 +4,5 @@ export { MCPConnectionController } from './controllers/mcp-connection.controller
4
4
  export { MCPMessageController } from './controllers/mcp-message.controller';
5
5
  export { type IMCPTool, IMCPToolRegistry, MCPToolRegistryController } from './controllers/mcp-tool-registry.controller';
6
6
  export { UniverMCPPlugin } from './plugin';
7
- export { type IConfigUpdateEvent, type IConnectionStatusEvent, type IMCPUIEvent, type IToolCallEvent, type IToolExecutionEvent, MCPUIEventId, MCPUIEventService } from './services/mcp-ui-event.service';
7
+ export { MCPEventId } from './services/mcp-event.service';
8
+ export { MCPEventService } from './services/mcp-event.service';
@@ -0,0 +1,86 @@
1
+ import { MCPConnectionError, MCPConnectionStatus } from '../controllers/config.schema';
2
+ /**
3
+ * MCP event interface - unified for all event types with strong typing
4
+ */
5
+ export type IMCPEvent = {
6
+ type: MCPEventId.McpConnectionStatusChanged;
7
+ data: IConnectionStatusEvent;
8
+ } | {
9
+ type: MCPEventId.McpToolCallReceived;
10
+ data: IToolCallEvent;
11
+ } | {
12
+ type: MCPEventId.McpToolCallExecuted;
13
+ data: IToolExecutionEvent;
14
+ } | {
15
+ type: MCPEventId.McpToolCallFailed;
16
+ data: IToolExecutionEvent;
17
+ };
18
+ /**
19
+ * MCP event IDs for communication between MCP core and consumers
20
+ */
21
+ export declare enum MCPEventId {
22
+ McpConnectionStatusChanged = "McpConnectionStatusChanged",
23
+ McpToolCallReceived = "McpToolCallReceived",
24
+ McpToolCallExecuted = "McpToolCallExecuted",
25
+ McpToolCallFailed = "McpToolCallFailed"
26
+ }
27
+ /**
28
+ * Connection status change event data
29
+ */
30
+ export interface IConnectionStatusEvent {
31
+ status: MCPConnectionStatus;
32
+ error?: MCPConnectionError;
33
+ message?: string;
34
+ }
35
+ /**
36
+ * Tool call event data
37
+ */
38
+ export interface IToolCallEvent {
39
+ toolName: string;
40
+ parameters: unknown;
41
+ callId?: string;
42
+ }
43
+ /**
44
+ * Tool execution result event data
45
+ */
46
+ export interface IToolExecutionEvent {
47
+ toolName: string;
48
+ callId?: string;
49
+ result?: unknown;
50
+ error?: string;
51
+ }
52
+ /**
53
+ * Configuration update event data
54
+ */
55
+ export interface IConfigUpdateEvent {
56
+ key: string;
57
+ value: unknown;
58
+ }
59
+ /**
60
+ * MCP Event Service
61
+ *
62
+ * This service provides event communication for MCP system:
63
+ * - Between MCP core and MCP UI plugin
64
+ * - For direct subscription by non-facade users
65
+ * - As source for facade event forwarding
66
+ */
67
+ export declare class MCPEventService {
68
+ private readonly _event$;
69
+ readonly event$: import('rxjs').Observable<IMCPEvent>;
70
+ /**
71
+ * Emit an MCP event (private - use specific emit methods for type safety)
72
+ */
73
+ private emitEvent;
74
+ /**
75
+ * Emit connection status change event
76
+ */
77
+ _emitConnectionStatus(event: IConnectionStatusEvent): void;
78
+ /**
79
+ * Emit tool call received event
80
+ */
81
+ _emitToolCallReceived(event: IToolCallEvent): void;
82
+ /**
83
+ * Emit tool execution result event
84
+ */
85
+ _emitToolExecuted(event: IToolExecutionEvent): void;
86
+ }
package/lib/umd/facade.js CHANGED
@@ -1 +1 @@
1
- (function(_0x1c1f60,_0x1b4bde){var _0x564a91=_0x50f1,_0x25dc2e=_0x1c1f60();while(!![]){try{var _0x253111=-parseInt(_0x564a91(0xf7))/0x1*(parseInt(_0x564a91(0x101))/0x2)+-parseInt(_0x564a91(0x104))/0x3+parseInt(_0x564a91(0xf4))/0x4+parseInt(_0x564a91(0xf5))/0x5*(-parseInt(_0x564a91(0x107))/0x6)+parseInt(_0x564a91(0x100))/0x7*(parseInt(_0x564a91(0xf6))/0x8)+-parseInt(_0x564a91(0xfa))/0x9+-parseInt(_0x564a91(0x108))/0xa*(-parseInt(_0x564a91(0xfe))/0xb);if(_0x253111===_0x1b4bde)break;else _0x25dc2e['push'](_0x25dc2e['shift']());}catch(_0x55883b){_0x25dc2e['push'](_0x25dc2e['shift']());}}}(_0x1257,0x69189),function(_0x4992e3,_0x24d8a8){var _0x550b88=_0x50f1;typeof exports=='object'&&typeof module<'u'?_0x24d8a8(require('@univerjs-pro/mcp'),require('@univerjs/core/facade')):typeof define=='function'&&define['amd']?define([_0x550b88(0x106),_0x550b88(0xf8)],_0x24d8a8):(_0x4992e3=typeof globalThis<'u'?globalThis:_0x4992e3||self,_0x24d8a8(_0x4992e3[_0x550b88(0xfc)],_0x4992e3['UniverCoreFacade']));}(this,function(_0x2b1e0f,_0x2aabea){'use strict';var _0xab68fd=_0x50f1;class _0x12cc5c extends _0x2aabea[_0xab68fd(0x103)]{['validateMCPToolCall'](_0x4065c3,_0x4949b0){var _0x476033=_0xab68fd;return this['_injector'][_0x476033(0x102)](_0x2b1e0f['IMCPToolRegistry'])['validateToolCall'](_0x4065c3,_0x4949b0);}[_0xab68fd(0xfd)](){var _0x21791d=_0xab68fd;return this[_0x21791d(0x10a)][_0x21791d(0x102)](_0x2b1e0f[_0x21791d(0xf9)])[_0x21791d(0x105)]();}[_0xab68fd(0xff)](_0x2d7040,_0x4f4d40){var _0x3488f2=_0xab68fd;return this[_0x3488f2(0x10a)][_0x3488f2(0x102)](_0x2b1e0f[_0x3488f2(0xf9)])[_0x3488f2(0x109)](_0x2d7040,_0x4f4d40);}}_0x2aabea[_0xab68fd(0x103)][_0xab68fd(0xfb)](_0x12cc5c);}));function _0x50f1(_0x2c4e50,_0x2df409){var _0x125723=_0x1257();return _0x50f1=function(_0x50f182,_0x18fa3a){_0x50f182=_0x50f182-0xf4;var _0x1c2353=_0x125723[_0x50f182];return _0x1c2353;},_0x50f1(_0x2c4e50,_0x2df409);}function _0x1257(){var _0x45a7ab=['2971368tRlUAv','extend','UniverProMcp','getAllMCPTools','15817681FMbrsm','callMCPTool','49PhebdQ','74jtrlDt','get','FUniver','724116JUqHHZ','getAllTools','@univerjs-pro/mcp','630qoNVDU','10kqIehK','executeTool','_injector','28148ShKjze','25825lxaAMV','622072hJSChv','12027kOxyfr','@univerjs/core/facade','IMCPToolRegistry'];_0x1257=function(){return _0x45a7ab;};return _0x1257();}
1
+ function _0x56d3(_0x484495,_0x2a72d5){const _0x3f1b7a=_0x3f1b();return _0x56d3=function(_0x56d399,_0x4396ae){_0x56d399=_0x56d399-0x1e6;let _0x550bd0=_0x3f1b7a[_0x56d399];return _0x550bd0;},_0x56d3(_0x484495,_0x2a72d5);}function _0x3f1b(){const _0x417f79=['McpToolCallFailed','get','3385712pFOtUL','disconnect','validateToolCall','_registerMCPFacadeEvents','getConnectionStatus','339NENPrQ','44153GyIipA','amd','McpToolCallReceived','toDisposable','object','event$','UniverCoreFacade','type','subscribe','1299198uasKvz','executeTool','273552bKXPeh','disconnectMCP','data','_injector','MCPEventService','MCPEventId','5aKFcnp','getAllMCPTools','McpConnectionStatusChanged','extend','4530rvkpmZ','callMCPTool','connectMCP','MCPConnectionController','@univerjs/core/facade','McpToolCallExecuted','6528ntstby','3646224PfDszw','getAllTools','fireEvent','IMCPToolRegistry','Event','@univerjs-pro/mcp','FEventName','10VKKjDJ','getMCPConnectionStatus','function','FUniver','3591QqESpT','connect','35dpWSMn','registerEventHandler','validateMCPToolCall'];_0x3f1b=function(){return _0x417f79;};return _0x3f1b();}(function(_0x40d8b0,_0x3a70e9){const _0x351a79=_0x56d3,_0x166518=_0x40d8b0();while(!![]){try{const _0x3437e3=parseInt(_0x351a79(0x1e6))/0x1*(-parseInt(_0x351a79(0x209))/0x2)+parseInt(_0x351a79(0x219))/0x3*(parseInt(_0x351a79(0x201))/0x4)+-parseInt(_0x351a79(0x1f7))/0x5*(-parseInt(_0x351a79(0x1ef))/0x6)+parseInt(_0x351a79(0x20f))/0x7*(parseInt(_0x351a79(0x1f1))/0x8)+parseInt(_0x351a79(0x20d))/0x9*(-parseInt(_0x351a79(0x1fb))/0xa)+-parseInt(_0x351a79(0x214))/0xb+parseInt(_0x351a79(0x202))/0xc;if(_0x3437e3===_0x3a70e9)break;else _0x166518['push'](_0x166518['shift']());}catch(_0x221e01){_0x166518['push'](_0x166518['shift']());}}}(_0x3f1b,0x28a43),function(_0x4a1882,_0x37bdd7){const _0x4f42e5=_0x56d3;typeof exports==_0x4f42e5(0x1ea)&&typeof module<'u'?_0x37bdd7(require('@univerjs-pro/mcp'),require('@univerjs/core/facade'),require('@univerjs/core')):typeof define==_0x4f42e5(0x20b)&&define[_0x4f42e5(0x1e7)]?define([_0x4f42e5(0x207),_0x4f42e5(0x1ff),'@univerjs/core'],_0x37bdd7):(_0x4a1882=typeof globalThis<'u'?globalThis:_0x4a1882||self,_0x37bdd7(_0x4a1882['UniverProMcp'],_0x4a1882[_0x4f42e5(0x1ec)],_0x4a1882['UniverCore']));}(this,function(_0x2fccc9,_0x37ecd3,_0x56a95d){'use strict';const _0x173eb8=_0x56d3;class _0x4764ad{get[_0x173eb8(0x1f9)](){const _0x51d8f9=_0x173eb8;return _0x2fccc9[_0x51d8f9(0x1f6)]['McpConnectionStatusChanged'];}get['McpToolCallReceived'](){const _0x202ba2=_0x173eb8;return _0x2fccc9[_0x202ba2(0x1f6)][_0x202ba2(0x1e8)];}get[_0x173eb8(0x200)](){const _0x206d70=_0x173eb8;return _0x2fccc9[_0x206d70(0x1f6)][_0x206d70(0x200)];}get[_0x173eb8(0x212)](){return _0x2fccc9['MCPEventId']['McpToolCallFailed'];}}_0x37ecd3[_0x173eb8(0x208)][_0x173eb8(0x1fa)](_0x4764ad);class _0x3edca7 extends _0x37ecd3[_0x173eb8(0x20c)]{['_initialize'](_0x2c5bae){this['_registerMCPFacadeEvents'](_0x2c5bae);}[_0x173eb8(0x217)](_0x4f85c4){const _0x3735e7=_0x173eb8,_0x4832df=_0x4f85c4[_0x3735e7(0x213)](_0x2fccc9[_0x3735e7(0x1f5)]);this[_0x3735e7(0x210)](this['Event'][_0x3735e7(0x1f9)],()=>_0x56a95d[_0x3735e7(0x1e9)](_0x4832df[_0x3735e7(0x1eb)][_0x3735e7(0x1ee)](_0x1aba0e=>{const _0x44552=_0x3735e7;_0x1aba0e['type']===_0x2fccc9[_0x44552(0x1f6)][_0x44552(0x1f9)]&&this[_0x44552(0x204)](this[_0x44552(0x206)]['McpConnectionStatusChanged'],_0x1aba0e[_0x44552(0x1f3)]);}))),this[_0x3735e7(0x210)](this[_0x3735e7(0x206)][_0x3735e7(0x1e8)],()=>_0x56a95d['toDisposable'](_0x4832df[_0x3735e7(0x1eb)][_0x3735e7(0x1ee)](_0x2ad600=>{const _0x2eeabf=_0x3735e7;_0x2ad600[_0x2eeabf(0x1ed)]===_0x2fccc9['MCPEventId'][_0x2eeabf(0x1e8)]&&this[_0x2eeabf(0x204)](this[_0x2eeabf(0x206)][_0x2eeabf(0x1e8)],_0x2ad600[_0x2eeabf(0x1f3)]);}))),this[_0x3735e7(0x210)](this[_0x3735e7(0x206)][_0x3735e7(0x200)],()=>_0x56a95d[_0x3735e7(0x1e9)](_0x4832df['event$'][_0x3735e7(0x1ee)](_0x5f42a1=>{const _0x363f49=_0x3735e7;_0x5f42a1[_0x363f49(0x1ed)]===_0x2fccc9[_0x363f49(0x1f6)][_0x363f49(0x200)]&&this[_0x363f49(0x204)](this[_0x363f49(0x206)][_0x363f49(0x200)],_0x5f42a1[_0x363f49(0x1f3)]);}))),this[_0x3735e7(0x210)](this['Event'][_0x3735e7(0x212)],()=>_0x56a95d[_0x3735e7(0x1e9)](_0x4832df[_0x3735e7(0x1eb)][_0x3735e7(0x1ee)](_0x4a76c4=>{const _0x560036=_0x3735e7;_0x4a76c4[_0x560036(0x1ed)]===_0x2fccc9['MCPEventId'][_0x560036(0x212)]&&this[_0x560036(0x204)](this[_0x560036(0x206)][_0x560036(0x212)],_0x4a76c4[_0x560036(0x1f3)]);})));}[_0x173eb8(0x211)](_0x1df198,_0x31f389){const _0x259495=_0x173eb8;return this[_0x259495(0x1f4)][_0x259495(0x213)](_0x2fccc9['IMCPToolRegistry'])[_0x259495(0x216)](_0x1df198,_0x31f389);}[_0x173eb8(0x1f8)](){const _0x1c5bdb=_0x173eb8;return this['_injector'][_0x1c5bdb(0x213)](_0x2fccc9[_0x1c5bdb(0x205)])[_0x1c5bdb(0x203)]();}[_0x173eb8(0x1fc)](_0x1ca975,_0x5d97c6){const _0x1002a2=_0x173eb8;return this[_0x1002a2(0x1f4)][_0x1002a2(0x213)](_0x2fccc9['IMCPToolRegistry'])[_0x1002a2(0x1f0)](_0x1ca975,_0x5d97c6);}[_0x173eb8(0x20a)](){const _0x1e7ccf=_0x173eb8;return this['_injector'][_0x1e7ccf(0x213)](_0x2fccc9[_0x1e7ccf(0x1fe)])[_0x1e7ccf(0x218)]();}[_0x173eb8(0x1fd)](){const _0x1bfc99=_0x173eb8;this[_0x1bfc99(0x1f4)][_0x1bfc99(0x213)](_0x2fccc9[_0x1bfc99(0x1fe)])[_0x1bfc99(0x20e)]();}[_0x173eb8(0x1f2)](){const _0x41cacf=_0x173eb8;this[_0x41cacf(0x1f4)][_0x41cacf(0x213)](_0x2fccc9[_0x41cacf(0x1fe)])[_0x41cacf(0x215)]();}}_0x37ecd3[_0x173eb8(0x20c)]['extend'](_0x3edca7);}));