unreal-engine-mcp-server 0.5.21 → 0.5.30
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/CHANGELOG.md +247 -4
- package/README.md +140 -85
- package/dist/automation/bridge.d.ts +8 -0
- package/dist/automation/bridge.d.ts.map +1 -1
- package/dist/automation/bridge.js +94 -14
- package/dist/automation/bridge.js.map +1 -1
- package/dist/automation/connection-manager.d.ts.map +1 -1
- package/dist/automation/connection-manager.js +13 -5
- package/dist/automation/connection-manager.js.map +1 -1
- package/dist/automation/handshake.d.ts.map +1 -1
- package/dist/automation/handshake.js +40 -27
- package/dist/automation/handshake.js.map +1 -1
- package/dist/automation/index.d.ts +1 -1
- package/dist/automation/index.d.ts.map +1 -1
- package/dist/automation/index.js +0 -1
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/message-handler.d.ts.map +1 -1
- package/dist/automation/message-handler.js +13 -9
- package/dist/automation/message-handler.js.map +1 -1
- package/dist/automation/message-schema.d.ts.map +1 -1
- package/dist/automation/message-schema.js +19 -18
- package/dist/automation/message-schema.js.map +1 -1
- package/dist/automation/request-tracker.d.ts +1 -0
- package/dist/automation/request-tracker.d.ts.map +1 -1
- package/dist/automation/request-tracker.js +30 -31
- package/dist/automation/request-tracker.js.map +1 -1
- package/dist/automation/types.d.ts +38 -32
- package/dist/automation/types.d.ts.map +1 -1
- package/dist/cli.js +14 -16
- package/dist/cli.js.map +1 -1
- package/dist/config/class-aliases.d.ts.map +1 -1
- package/dist/config/class-aliases.js +10 -2
- package/dist/config/class-aliases.js.map +1 -1
- package/dist/config.d.ts +9 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -32
- package/dist/config.js.map +1 -1
- package/dist/handlers/resource-handlers.d.ts +15 -2
- package/dist/handlers/resource-handlers.d.ts.map +1 -1
- package/dist/handlers/resource-handlers.js +46 -63
- package/dist/handlers/resource-handlers.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -48
- package/dist/index.js.map +1 -1
- package/dist/resources/assets.d.ts.map +1 -1
- package/dist/resources/assets.js +34 -9
- package/dist/resources/assets.js.map +1 -1
- package/dist/resources/levels.d.ts +3 -0
- package/dist/resources/levels.d.ts.map +1 -1
- package/dist/resources/levels.js +33 -17
- package/dist/resources/levels.js.map +1 -1
- package/dist/server/resource-registry.d.ts +15 -2
- package/dist/server/resource-registry.d.ts.map +1 -1
- package/dist/server/resource-registry.js +9 -8
- package/dist/server/resource-registry.js.map +1 -1
- package/dist/server/tool-registry.d.ts +0 -1
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +91 -101
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/server-setup.d.ts +5 -2
- package/dist/server-setup.d.ts.map +1 -1
- package/dist/server-setup.js +15 -19
- package/dist/server-setup.js.map +1 -1
- package/dist/services/health-monitor.d.ts +3 -0
- package/dist/services/health-monitor.d.ts.map +1 -1
- package/dist/services/health-monitor.js +30 -11
- package/dist/services/health-monitor.js.map +1 -1
- package/dist/services/metrics-server.d.ts +1 -1
- package/dist/services/metrics-server.d.ts.map +1 -1
- package/dist/services/metrics-server.js +65 -3
- package/dist/services/metrics-server.js.map +1 -1
- package/dist/tools/base-tool.d.ts.map +1 -1
- package/dist/tools/base-tool.js +14 -16
- package/dist/tools/base-tool.js.map +1 -1
- package/dist/tools/consolidated-tool-definitions.d.ts +16 -1
- package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-definitions.js +1479 -2538
- package/dist/tools/consolidated-tool-definitions.js.map +1 -1
- package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-handlers.js +195 -217
- package/dist/tools/consolidated-tool-handlers.js.map +1 -1
- package/dist/tools/dynamic-handler-registry.d.ts +1 -0
- package/dist/tools/dynamic-handler-registry.d.ts.map +1 -1
- package/dist/tools/dynamic-handler-registry.js +15 -7
- package/dist/tools/dynamic-handler-registry.js.map +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-manager.js +30 -18
- package/dist/tools/dynamic-tool-manager.js.map +1 -1
- package/dist/tools/editor.d.ts +2 -2
- package/dist/tools/editor.d.ts.map +1 -1
- package/dist/tools/editor.js +4 -4
- package/dist/tools/editor.js.map +1 -1
- package/dist/tools/handlers/actor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/actor-handlers.js +66 -7
- package/dist/tools/handlers/actor-handlers.js.map +1 -1
- package/dist/tools/handlers/ai-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/ai-handlers.js +24 -13
- package/dist/tools/handlers/ai-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.js +285 -218
- package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-handlers.js +69 -21
- package/dist/tools/handlers/animation-handlers.js.map +1 -1
- package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/asset-handlers.js +75 -16
- package/dist/tools/handlers/asset-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-authoring-handlers.js +102 -9
- package/dist/tools/handlers/audio-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-handlers.js +48 -13
- package/dist/tools/handlers/audio-handlers.js.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.js +28 -48
- package/dist/tools/handlers/blueprint-handlers.js.map +1 -1
- package/dist/tools/handlers/character-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/character-handlers.js +13 -12
- package/dist/tools/handlers/character-handlers.js.map +1 -1
- package/dist/tools/handlers/combat-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/combat-handlers.js +12 -12
- package/dist/tools/handlers/combat-handlers.js.map +1 -1
- package/dist/tools/handlers/common-handlers.d.ts +14 -0
- package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/common-handlers.js +117 -9
- package/dist/tools/handlers/common-handlers.js.map +1 -1
- package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/editor-handlers.js +139 -67
- package/dist/tools/handlers/editor-handlers.js.map +1 -1
- package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/effect-handlers.js +324 -36
- package/dist/tools/handlers/effect-handlers.js.map +1 -1
- package/dist/tools/handlers/environment-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/environment-handlers.js +186 -21
- package/dist/tools/handlers/environment-handlers.js.map +1 -1
- package/dist/tools/handlers/game-framework-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/game-framework-handlers.js +10 -12
- package/dist/tools/handlers/game-framework-handlers.js.map +1 -1
- package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/gas-handlers.js +136 -20
- package/dist/tools/handlers/gas-handlers.js.map +1 -1
- package/dist/tools/handlers/geometry-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/geometry-handlers.js +130 -7
- package/dist/tools/handlers/geometry-handlers.js.map +1 -1
- package/dist/tools/handlers/graph-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/graph-handlers.js +46 -11
- package/dist/tools/handlers/graph-handlers.js.map +1 -1
- package/dist/tools/handlers/input-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/input-handlers.js +33 -75
- package/dist/tools/handlers/input-handlers.js.map +1 -1
- package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inspect-handlers.js +136 -39
- package/dist/tools/handlers/inspect-handlers.js.map +1 -1
- package/dist/tools/handlers/interaction-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/interaction-handlers.js +14 -12
- package/dist/tools/handlers/interaction-handlers.js.map +1 -1
- package/dist/tools/handlers/inventory-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inventory-handlers.js +19 -12
- package/dist/tools/handlers/inventory-handlers.js.map +1 -1
- package/dist/tools/handlers/level-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/level-handlers.js +166 -149
- package/dist/tools/handlers/level-handlers.js.map +1 -1
- package/dist/tools/handlers/level-structure-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/level-structure-handlers.js +18 -34
- package/dist/tools/handlers/level-structure-handlers.js.map +1 -1
- package/dist/tools/handlers/manage-tools-handlers.js +3 -3
- package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
- package/dist/tools/handlers/material-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/material-authoring-handlers.js +382 -41
- package/dist/tools/handlers/material-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/navigation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/navigation-handlers.js +11 -36
- package/dist/tools/handlers/navigation-handlers.js.map +1 -1
- package/dist/tools/handlers/networking-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/networking-handlers.js +17 -15
- package/dist/tools/handlers/networking-handlers.js.map +1 -1
- package/dist/tools/handlers/niagara-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/niagara-authoring-handlers.js +24 -23
- package/dist/tools/handlers/niagara-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/pcg-handlers.d.ts +4 -0
- package/dist/tools/handlers/pcg-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/pcg-handlers.js +77 -0
- package/dist/tools/handlers/pcg-handlers.js.map +1 -0
- package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/performance-handlers.js +35 -42
- package/dist/tools/handlers/performance-handlers.js.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.js +157 -39
- package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
- package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/sequence-handlers.js +6 -4
- package/dist/tools/handlers/sequence-handlers.js.map +1 -1
- package/dist/tools/handlers/sessions-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/sessions-handlers.js +7 -15
- package/dist/tools/handlers/sessions-handlers.js.map +1 -1
- package/dist/tools/handlers/spline-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/spline-handlers.js +8 -35
- package/dist/tools/handlers/spline-handlers.js.map +1 -1
- package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/system-handlers.js +100 -26
- package/dist/tools/handlers/system-handlers.js.map +1 -1
- package/dist/tools/handlers/texture-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/texture-handlers.js +14 -0
- package/dist/tools/handlers/texture-handlers.js.map +1 -1
- package/dist/tools/handlers/volume-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/volume-handlers.js +6 -33
- package/dist/tools/handlers/volume-handlers.js.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.js +26 -20
- package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
- package/dist/tools/level.d.ts +2 -2
- package/dist/tools/level.d.ts.map +1 -1
- package/dist/tools/level.js +2 -1
- package/dist/tools/level.js.map +1 -1
- package/dist/tools/property-dictionary.js +1 -1
- package/dist/tools/property-dictionary.js.map +1 -1
- package/dist/tools/schemas/core-tools.d.ts +1 -1
- package/dist/tools/schemas/core-tools.d.ts.map +1 -1
- package/dist/tools/schemas/core-tools.js +94 -57
- package/dist/tools/schemas/core-tools.js.map +1 -1
- package/dist/tools/tool-definition-utils.d.ts +8 -0
- package/dist/tools/tool-definition-utils.d.ts.map +1 -1
- package/dist/tools/tool-definition-utils.js +20 -0
- package/dist/tools/tool-definition-utils.js.map +1 -1
- package/dist/types/automation-responses.d.ts +26 -33
- package/dist/types/automation-responses.d.ts.map +1 -1
- package/dist/types/env.d.ts.map +1 -1
- package/dist/types/env.js +7 -6
- package/dist/types/env.js.map +1 -1
- package/dist/types/handler-types.d.ts +41 -20
- package/dist/types/handler-types.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool-interfaces.d.ts +5 -873
- package/dist/types/tool-interfaces.d.ts.map +1 -1
- package/dist/types/tool-types.d.ts +35 -1
- package/dist/types/tool-types.d.ts.map +1 -1
- package/dist/unreal-bridge.d.ts.map +1 -1
- package/dist/unreal-bridge.js +16 -6
- package/dist/unreal-bridge.js.map +1 -1
- package/dist/utils/action-constants.d.ts +4 -1
- package/dist/utils/action-constants.d.ts.map +1 -1
- package/dist/utils/action-constants.js +4 -1
- package/dist/utils/action-constants.js.map +1 -1
- package/dist/utils/command-validator.d.ts.map +1 -1
- package/dist/utils/command-validator.js +5 -4
- package/dist/utils/command-validator.js.map +1 -1
- package/dist/utils/elicitation.d.ts +5 -2
- package/dist/utils/elicitation.d.ts.map +1 -1
- package/dist/utils/elicitation.js +38 -21
- package/dist/utils/elicitation.js.map +1 -1
- package/dist/utils/environment-snapshot.d.ts +17 -0
- package/dist/utils/environment-snapshot.d.ts.map +1 -0
- package/dist/utils/environment-snapshot.js +242 -0
- package/dist/utils/environment-snapshot.js.map +1 -0
- package/dist/utils/error-handler.d.ts +1 -11
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +41 -25
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ini-reader.js +4 -4
- package/dist/utils/ini-reader.js.map +1 -1
- package/dist/utils/log-reader.d.ts +29 -0
- package/dist/utils/log-reader.d.ts.map +1 -0
- package/dist/utils/log-reader.js +229 -0
- package/dist/utils/log-reader.js.map +1 -0
- package/dist/utils/log-redaction.d.ts +4 -0
- package/dist/utils/log-redaction.d.ts.map +1 -0
- package/dist/utils/log-redaction.js +27 -0
- package/dist/utils/log-redaction.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +20 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +31 -30
- package/dist/utils/normalize.js.map +1 -1
- package/dist/utils/path-security.d.ts.map +1 -1
- package/dist/utils/path-security.js +20 -11
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/response-factory.d.ts +1 -1
- package/dist/utils/response-factory.d.ts.map +1 -1
- package/dist/utils/response-factory.js +17 -3
- package/dist/utils/response-factory.js.map +1 -1
- package/dist/utils/response-validator.d.ts.map +1 -1
- package/dist/utils/response-validator.js +114 -47
- package/dist/utils/response-validator.js.map +1 -1
- package/dist/utils/safe-json.d.ts.map +1 -1
- package/dist/utils/safe-json.js +24 -18
- package/dist/utils/safe-json.js.map +1 -1
- package/dist/utils/type-coercion.d.ts +2 -3
- package/dist/utils/type-coercion.d.ts.map +1 -1
- package/dist/utils/type-coercion.js +42 -14
- package/dist/utils/type-coercion.js.map +1 -1
- package/dist/utils/type-guards.d.ts +2 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +4 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/utils/unreal-command-queue.d.ts +2 -0
- package/dist/utils/unreal-command-queue.d.ts.map +1 -1
- package/dist/utils/unreal-command-queue.js +80 -54
- package/dist/utils/unreal-command-queue.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +44 -34
- package/dist/utils/validation.js.map +1 -1
- package/package.json +4 -6
- package/server.json +3 -3
- package/dist/graphql/loaders.d.ts +0 -64
- package/dist/graphql/loaders.d.ts.map +0 -1
- package/dist/graphql/loaders.js +0 -117
- package/dist/graphql/loaders.js.map +0 -1
- package/dist/graphql/resolvers.d.ts +0 -373
- package/dist/graphql/resolvers.d.ts.map +0 -1
- package/dist/graphql/resolvers.js +0 -776
- package/dist/graphql/resolvers.js.map +0 -1
- package/dist/graphql/schema.d.ts +0 -5
- package/dist/graphql/schema.d.ts.map +0 -1
- package/dist/graphql/schema.js +0 -437
- package/dist/graphql/schema.js.map +0 -1
- package/dist/graphql/server.d.ts +0 -25
- package/dist/graphql/server.d.ts.map +0 -1
- package/dist/graphql/server.js +0 -119
- package/dist/graphql/server.js.map +0 -1
- package/dist/graphql/types.d.ts +0 -9
- package/dist/graphql/types.d.ts.map +0 -1
- package/dist/graphql/types.js +0 -2
- package/dist/graphql/types.js.map +0 -1
- package/dist/tools/actors.d.ts +0 -212
- package/dist/tools/actors.d.ts.map +0 -1
- package/dist/tools/actors.js +0 -456
- package/dist/tools/actors.js.map +0 -1
- package/dist/tools/animation.d.ts +0 -274
- package/dist/tools/animation.d.ts.map +0 -1
- package/dist/tools/animation.js +0 -773
- package/dist/tools/animation.js.map +0 -1
- package/dist/tools/assets.d.ts +0 -82
- package/dist/tools/assets.d.ts.map +0 -1
- package/dist/tools/assets.js +0 -383
- package/dist/tools/assets.js.map +0 -1
- package/dist/tools/blueprint.d.ts +0 -271
- package/dist/tools/blueprint.d.ts.map +0 -1
- package/dist/tools/blueprint.js +0 -828
- package/dist/tools/blueprint.js.map +0 -1
- package/dist/tools/environment.d.ts +0 -37
- package/dist/tools/environment.d.ts.map +0 -1
- package/dist/tools/environment.js +0 -338
- package/dist/tools/environment.js.map +0 -1
- package/dist/tools/foliage.d.ts +0 -140
- package/dist/tools/foliage.d.ts.map +0 -1
- package/dist/tools/foliage.js +0 -405
- package/dist/tools/foliage.js.map +0 -1
- package/dist/tools/landscape.d.ts +0 -120
- package/dist/tools/landscape.d.ts.map +0 -1
- package/dist/tools/landscape.js +0 -454
- package/dist/tools/landscape.js.map +0 -1
- package/dist/tools/lighting.d.ts +0 -240
- package/dist/tools/lighting.d.ts.map +0 -1
- package/dist/tools/lighting.js +0 -856
- package/dist/tools/lighting.js.map +0 -1
- package/dist/tools/logs.d.ts +0 -45
- package/dist/tools/logs.d.ts.map +0 -1
- package/dist/tools/logs.js +0 -235
- package/dist/tools/logs.js.map +0 -1
- package/dist/tools/niagara.d.ts +0 -277
- package/dist/tools/niagara.d.ts.map +0 -1
- package/dist/tools/niagara.js +0 -325
- package/dist/tools/niagara.js.map +0 -1
- package/dist/tools/physics.d.ts +0 -191
- package/dist/tools/physics.d.ts.map +0 -1
- package/dist/tools/physics.js +0 -492
- package/dist/tools/physics.js.map +0 -1
- package/dist/tools/sequence.d.ts +0 -139
- package/dist/tools/sequence.d.ts.map +0 -1
- package/dist/tools/sequence.js +0 -261
- package/dist/tools/sequence.js.map +0 -1
|
@@ -10,7 +10,11 @@ import { HandshakeHandler } from './handshake.js';
|
|
|
10
10
|
import { MessageHandler } from './message-handler.js';
|
|
11
11
|
import { automationMessageSchema } from './message-schema.js';
|
|
12
12
|
import { config } from '../config.js';
|
|
13
|
+
import { redactImagePayloadTextForLog } from '../utils/log-redaction.js';
|
|
13
14
|
const require = createRequire(import.meta.url);
|
|
15
|
+
function castAutomationResponse(response) {
|
|
16
|
+
return response;
|
|
17
|
+
}
|
|
14
18
|
const packageInfo = (() => {
|
|
15
19
|
try {
|
|
16
20
|
return require('../../package.json');
|
|
@@ -36,6 +40,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
36
40
|
maxConcurrentConnections;
|
|
37
41
|
maxQueuedRequests;
|
|
38
42
|
useTls;
|
|
43
|
+
connectionTimeoutMs;
|
|
39
44
|
connectionManager;
|
|
40
45
|
requestTracker;
|
|
41
46
|
handshakeHandler;
|
|
@@ -50,6 +55,10 @@ export class AutomationBridge extends EventEmitter {
|
|
|
50
55
|
queuedRequestItems = [];
|
|
51
56
|
connectionPromise;
|
|
52
57
|
connectionLock = false;
|
|
58
|
+
pendingConnectionSocket;
|
|
59
|
+
abortedConnectionSockets = new WeakSet();
|
|
60
|
+
connectionAttemptCleanup;
|
|
61
|
+
connectionAttemptReject;
|
|
53
62
|
constructor(options = {}) {
|
|
54
63
|
super();
|
|
55
64
|
const allowNonLoopback = options.allowNonLoopback
|
|
@@ -114,12 +123,18 @@ export class AutomationBridge extends EventEmitter {
|
|
|
114
123
|
return value > 0 && value <= 65535 ? value : null;
|
|
115
124
|
}
|
|
116
125
|
if (typeof value === 'string' && value.trim().length > 0) {
|
|
117
|
-
const
|
|
126
|
+
const trimmed = value.trim();
|
|
127
|
+
if (!/^\d+$/.test(trimmed))
|
|
128
|
+
return null;
|
|
129
|
+
const parsed = Number(trimmed);
|
|
118
130
|
return Number.isInteger(parsed) && parsed > 0 && parsed <= 65535 ? parsed : null;
|
|
119
131
|
}
|
|
120
132
|
return null;
|
|
121
133
|
};
|
|
122
|
-
const defaultPort = sanitizePort(options.port
|
|
134
|
+
const defaultPort = sanitizePort(options.port)
|
|
135
|
+
?? sanitizePort(process.env.MCP_AUTOMATION_WS_PORT)
|
|
136
|
+
?? sanitizePort(process.env.MCP_AUTOMATION_PORT)
|
|
137
|
+
?? DEFAULT_AUTOMATION_PORT;
|
|
123
138
|
const configuredPortValues = options.ports
|
|
124
139
|
? options.ports
|
|
125
140
|
: process.env.MCP_AUTOMATION_WS_PORTS
|
|
@@ -171,7 +186,10 @@ export class AutomationBridge extends EventEmitter {
|
|
|
171
186
|
return value >= 0 ? value : fallback;
|
|
172
187
|
}
|
|
173
188
|
if (typeof value === 'string' && value.trim().length > 0) {
|
|
174
|
-
const
|
|
189
|
+
const trimmed = value.trim();
|
|
190
|
+
if (!/^\d+$/.test(trimmed))
|
|
191
|
+
return fallback;
|
|
192
|
+
const parsed = Number(trimmed);
|
|
175
193
|
return Number.isInteger(parsed) && parsed >= 0 ? parsed : fallback;
|
|
176
194
|
}
|
|
177
195
|
return fallback;
|
|
@@ -193,16 +211,16 @@ export class AutomationBridge extends EventEmitter {
|
|
|
193
211
|
const maxConcurrentConnections = Math.max(1, options.maxConcurrentConnections ?? 10);
|
|
194
212
|
this.maxQueuedRequests = Math.max(0, options.maxQueuedRequests ?? DEFAULT_MAX_QUEUED_REQUESTS);
|
|
195
213
|
this.useTls = parseBoolean(options.useTls ?? process.env.MCP_AUTOMATION_USE_TLS, false);
|
|
214
|
+
this.connectionTimeoutMs = Math.max(1, parseNonNegativeInt(options.connectionTimeoutMs ?? config.MCP_CONNECTION_TIMEOUT_MS, config.MCP_CONNECTION_TIMEOUT_MS));
|
|
196
215
|
const maxInboundMessagesPerMinute = parseNonNegativeInt(options.maxInboundMessagesPerMinute
|
|
197
216
|
?? process.env.MCP_AUTOMATION_MAX_MESSAGES_PER_MINUTE, DEFAULT_MAX_INBOUND_MESSAGES_PER_MINUTE);
|
|
198
217
|
const maxInboundAutomationRequestsPerMinute = parseNonNegativeInt(options.maxInboundAutomationRequestsPerMinute
|
|
199
218
|
?? process.env.MCP_AUTOMATION_MAX_AUTOMATION_REQUESTS_PER_MINUTE, DEFAULT_MAX_INBOUND_AUTOMATION_REQUESTS_PER_MINUTE);
|
|
200
219
|
const rawClientHost = options.clientHost
|
|
201
220
|
?? process.env.MCP_AUTOMATION_CLIENT_HOST
|
|
202
|
-
??
|
|
203
|
-
?? DEFAULT_AUTOMATION_HOST;
|
|
221
|
+
?? this.host;
|
|
204
222
|
this.clientHost = normalizeHost(rawClientHost, 'Automation bridge client host');
|
|
205
|
-
this.clientPort = options.clientPort ?? sanitizePort(process.env.MCP_AUTOMATION_CLIENT_PORT) ??
|
|
223
|
+
this.clientPort = options.clientPort ?? sanitizePort(process.env.MCP_AUTOMATION_CLIENT_PORT) ?? defaultPort;
|
|
206
224
|
this.maxConcurrentConnections = maxConcurrentConnections;
|
|
207
225
|
this.connectionManager = new ConnectionManager(heartbeatIntervalMs, maxInboundMessagesPerMinute, maxInboundAutomationRequestsPerMinute);
|
|
208
226
|
this.requestTracker = new RequestTracker(maxPendingRequests);
|
|
@@ -246,6 +264,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
246
264
|
headers,
|
|
247
265
|
perMessageDeflate: false
|
|
248
266
|
});
|
|
267
|
+
this.pendingConnectionSocket = socket;
|
|
249
268
|
this.handleClientConnection(socket);
|
|
250
269
|
}
|
|
251
270
|
catch (error) {
|
|
@@ -260,7 +279,8 @@ export class AutomationBridge extends EventEmitter {
|
|
|
260
279
|
socket.on('open', async () => {
|
|
261
280
|
this.log.info('Automation bridge client connected, starting handshake');
|
|
262
281
|
try {
|
|
263
|
-
const metadata = await this.handshakeHandler.initiateHandshake(socket);
|
|
282
|
+
const metadata = await this.handshakeHandler.initiateHandshake(socket, this.connectionTimeoutMs);
|
|
283
|
+
this.clearPendingConnection(socket);
|
|
264
284
|
this.lastHandshakeAt = new Date();
|
|
265
285
|
this.lastHandshakeMetadata = metadata;
|
|
266
286
|
this.lastHandshakeFailure = undefined;
|
|
@@ -325,7 +345,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
325
345
|
return;
|
|
326
346
|
}
|
|
327
347
|
const text = rawDataToUtf8String(data, byteLength);
|
|
328
|
-
this.log.debug(`[AutomationBridge Client] Received message: ${text.substring(0, 1000)}`);
|
|
348
|
+
this.log.debug(`[AutomationBridge Client] Received message: ${redactImagePayloadTextForLog(text).substring(0, 1000)}`);
|
|
329
349
|
const parsed = JSON.parse(text);
|
|
330
350
|
if (!this.connectionManager.recordInboundMessage(socket, false)) {
|
|
331
351
|
this.log.warn('Inbound message rate limit exceeded; closing connection.');
|
|
@@ -334,7 +354,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
334
354
|
}
|
|
335
355
|
const validation = automationMessageSchema.safeParse(parsed);
|
|
336
356
|
if (!validation.success) {
|
|
337
|
-
this.log.warn('Dropped invalid automation message', validation.error.
|
|
357
|
+
this.log.warn('Dropped invalid automation message', validation.error.issues);
|
|
338
358
|
return;
|
|
339
359
|
}
|
|
340
360
|
this.connectionManager.updateLastMessageTime();
|
|
@@ -347,12 +367,18 @@ export class AutomationBridge extends EventEmitter {
|
|
|
347
367
|
});
|
|
348
368
|
}
|
|
349
369
|
catch (error) {
|
|
370
|
+
this.clearPendingConnection(socket);
|
|
350
371
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
351
372
|
this.lastHandshakeFailure = { reason: err.message, at: new Date() };
|
|
352
373
|
this.emitAutomation('handshakeFailed', { reason: err.message, port: this.clientPort });
|
|
353
374
|
}
|
|
354
375
|
});
|
|
355
376
|
socket.on('error', (error) => {
|
|
377
|
+
this.clearPendingConnection(socket);
|
|
378
|
+
if (this.abortedConnectionSockets.has(socket)) {
|
|
379
|
+
this.log.debug('Ignoring error from aborted automation bridge socket', error);
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
356
382
|
this.log.error('Automation bridge client socket error', error);
|
|
357
383
|
const errObj = error instanceof Error ? error : new Error(String(error));
|
|
358
384
|
this.lastError = { message: errObj.message, at: new Date() };
|
|
@@ -360,6 +386,8 @@ export class AutomationBridge extends EventEmitter {
|
|
|
360
386
|
this.emitAutomation('error', errWithPort);
|
|
361
387
|
});
|
|
362
388
|
socket.on('close', (code, reasonBuffer) => {
|
|
389
|
+
this.clearPendingConnection(socket);
|
|
390
|
+
this.abortedConnectionSockets.delete(socket);
|
|
363
391
|
const reason = reasonBuffer.toString('utf8');
|
|
364
392
|
const socketInfo = this.connectionManager.removeSocket(socket);
|
|
365
393
|
if (socketInfo) {
|
|
@@ -372,6 +400,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
372
400
|
});
|
|
373
401
|
this.log.info(`Automation bridge client socket closed (code=${code}, reason=${reason})`);
|
|
374
402
|
if (!this.connectionManager.isConnected()) {
|
|
403
|
+
this.rejectQueuedRequests(new Error(reason || 'Connection lost'));
|
|
375
404
|
this.requestTracker.rejectAll(new Error(reason || 'Connection lost'));
|
|
376
405
|
}
|
|
377
406
|
}
|
|
@@ -389,6 +418,37 @@ export class AutomationBridge extends EventEmitter {
|
|
|
389
418
|
const scheme = this.useTls ? 'wss' : 'ws';
|
|
390
419
|
return `${scheme}://${this.formatHostForUrl(this.clientHost)}:${this.clientPort}`;
|
|
391
420
|
}
|
|
421
|
+
clearPendingConnection(socket) {
|
|
422
|
+
if (this.pendingConnectionSocket === socket) {
|
|
423
|
+
this.pendingConnectionSocket = undefined;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
abortPendingConnection(reason = new Error('Automation bridge connection attempt aborted')) {
|
|
427
|
+
const socket = this.pendingConnectionSocket;
|
|
428
|
+
this.pendingConnectionSocket = undefined;
|
|
429
|
+
const rejectConnectionAttempt = this.connectionAttemptReject;
|
|
430
|
+
const cleanup = this.connectionAttemptCleanup;
|
|
431
|
+
if (cleanup) {
|
|
432
|
+
cleanup();
|
|
433
|
+
}
|
|
434
|
+
else {
|
|
435
|
+
this.connectionLock = false;
|
|
436
|
+
this.connectionPromise = undefined;
|
|
437
|
+
this.connectionAttemptReject = undefined;
|
|
438
|
+
}
|
|
439
|
+
if (rejectConnectionAttempt) {
|
|
440
|
+
rejectConnectionAttempt(reason);
|
|
441
|
+
}
|
|
442
|
+
if (socket && socket.readyState !== WebSocket.CLOSED && socket.readyState !== WebSocket.CLOSING) {
|
|
443
|
+
this.abortedConnectionSockets.add(socket);
|
|
444
|
+
try {
|
|
445
|
+
socket.terminate();
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
this.log.debug('Failed to terminate timed-out automation bridge socket', error);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
}
|
|
392
452
|
stop() {
|
|
393
453
|
if (this.isConnected()) {
|
|
394
454
|
this.broadcast({
|
|
@@ -397,8 +457,10 @@ export class AutomationBridge extends EventEmitter {
|
|
|
397
457
|
reason: 'Server shutting down'
|
|
398
458
|
});
|
|
399
459
|
}
|
|
460
|
+
this.abortPendingConnection(new Error('Automation bridge server stopped'));
|
|
400
461
|
this.connectionManager.closeAll(1001, 'Server shutdown');
|
|
401
462
|
this.lastHandshakeAck = undefined;
|
|
463
|
+
this.rejectQueuedRequests(new Error('Automation bridge server stopped'));
|
|
402
464
|
this.requestTracker.rejectAll(new Error('Automation bridge server stopped'));
|
|
403
465
|
}
|
|
404
466
|
isConnected() {
|
|
@@ -418,7 +480,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
418
480
|
}));
|
|
419
481
|
return {
|
|
420
482
|
enabled: this.enabled,
|
|
421
|
-
host: this.
|
|
483
|
+
host: this.clientHost,
|
|
422
484
|
port: this.port,
|
|
423
485
|
configuredPorts: [...this.ports],
|
|
424
486
|
listeningPorts: [],
|
|
@@ -481,7 +543,13 @@ export class AutomationBridge extends EventEmitter {
|
|
|
481
543
|
this.off('handshakeFailed', onHandshakeFail);
|
|
482
544
|
this.connectionLock = false;
|
|
483
545
|
this.connectionPromise = undefined;
|
|
546
|
+
if (this.connectionAttemptCleanup === cleanup) {
|
|
547
|
+
this.connectionAttemptCleanup = undefined;
|
|
548
|
+
this.connectionAttemptReject = undefined;
|
|
549
|
+
}
|
|
484
550
|
};
|
|
551
|
+
this.connectionAttemptCleanup = cleanup;
|
|
552
|
+
this.connectionAttemptReject = reject;
|
|
485
553
|
this.once('connected', onConnect);
|
|
486
554
|
this.once('error', onError);
|
|
487
555
|
this.once('handshakeFailed', onHandshakeFail);
|
|
@@ -494,7 +562,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
494
562
|
});
|
|
495
563
|
}
|
|
496
564
|
try {
|
|
497
|
-
const connectTimeout =
|
|
565
|
+
const connectTimeout = this.connectionTimeoutMs;
|
|
498
566
|
let timeoutId;
|
|
499
567
|
const timeoutPromise = new Promise((_, reject) => {
|
|
500
568
|
timeoutId = setTimeout(() => reject(new Error('Lazy connection timeout')), connectTimeout);
|
|
@@ -508,8 +576,11 @@ export class AutomationBridge extends EventEmitter {
|
|
|
508
576
|
}
|
|
509
577
|
}
|
|
510
578
|
catch (err) {
|
|
511
|
-
this.log.error('Lazy connection failed', err);
|
|
512
579
|
const errObj = err;
|
|
580
|
+
if (String(errObj?.message ?? err) === 'Lazy connection timeout') {
|
|
581
|
+
this.abortPendingConnection(new Error('Lazy connection timeout'));
|
|
582
|
+
}
|
|
583
|
+
this.log.error('Lazy connection failed', err);
|
|
513
584
|
throw new Error(`Failed to establish connection to Unreal Engine: ${String(errObj?.message ?? err)}`);
|
|
514
585
|
}
|
|
515
586
|
}
|
|
@@ -542,7 +613,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
542
613
|
if (coalesceKey) {
|
|
543
614
|
const existing = this.requestTracker.getCoalescedRequest(coalesceKey);
|
|
544
615
|
if (existing) {
|
|
545
|
-
return existing;
|
|
616
|
+
return existing.then((castAutomationResponse));
|
|
546
617
|
}
|
|
547
618
|
}
|
|
548
619
|
const { requestId, promise } = this.requestTracker.createRequest(action, payload, timeoutMs);
|
|
@@ -555,7 +626,7 @@ export class AutomationBridge extends EventEmitter {
|
|
|
555
626
|
action,
|
|
556
627
|
payload
|
|
557
628
|
};
|
|
558
|
-
const resultPromise = promise;
|
|
629
|
+
const resultPromise = promise.then((castAutomationResponse));
|
|
559
630
|
resultPromise.finally(() => {
|
|
560
631
|
this.processRequestQueue();
|
|
561
632
|
}).catch(() => { });
|
|
@@ -571,6 +642,10 @@ export class AutomationBridge extends EventEmitter {
|
|
|
571
642
|
processRequestQueue() {
|
|
572
643
|
if (this.queuedRequestItems.length === 0)
|
|
573
644
|
return;
|
|
645
|
+
if (!this.isConnected()) {
|
|
646
|
+
this.rejectQueuedRequests(new Error('Connection lost'));
|
|
647
|
+
return;
|
|
648
|
+
}
|
|
574
649
|
while (this.queuedRequestItems.length > 0 &&
|
|
575
650
|
this.requestTracker.getPendingCount() < this.requestTracker.getMaxPendingRequests()) {
|
|
576
651
|
const item = this.queuedRequestItems.shift();
|
|
@@ -581,6 +656,11 @@ export class AutomationBridge extends EventEmitter {
|
|
|
581
656
|
}
|
|
582
657
|
}
|
|
583
658
|
}
|
|
659
|
+
rejectQueuedRequests(error) {
|
|
660
|
+
for (const item of this.queuedRequestItems.splice(0)) {
|
|
661
|
+
item.reject(error);
|
|
662
|
+
}
|
|
663
|
+
}
|
|
584
664
|
send(payload) {
|
|
585
665
|
const primarySocket = this.connectionManager.getPrimarySocket();
|
|
586
666
|
if (!primarySocket || primarySocket.readyState !== WebSocket.OPEN) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/automation/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,uCAAuC,EACvC,kDAAkD,EAClD,yBAAyB,EAC5B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAwC,CAAC,GAAG,EAAE;IAC3D,IAAI,CAAC;QACD,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAC7B,IAAI,CAAS;IACb,IAAI,CAAS;IACb,KAAK,CAAW;IAChB,mBAAmB,CAAW;IAC9B,eAAe,CAAU;IACzB,OAAO,CAAU;IACjB,UAAU,CAAS;IACnB,aAAa,CAAS;IACtB,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,mBAAmB,CAAU;IAC7B,wBAAwB,CAAS;IACjC,iBAAiB,CAAS;IAC1B,MAAM,CAAU;IAEzB,iBAAiB,CAAoB;IACrC,cAAc,CAAiB;IAC/B,gBAAgB,CAAmB;IACnC,cAAc,CAAiB;IAC/B,GAAG,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAErC,eAAe,CAAQ;IACvB,qBAAqB,CAA2B;IAChD,gBAAgB,CAA2B;IAC3C,oBAAoB,CAAgC;IACpD,cAAc,CAA8C;IAC5D,SAAS,CAAiC;IAE1C,kBAAkB,GAAwB,EAAE,CAAC;IAC7C,iBAAiB,CAAiB;IAClC,cAAc,GAAG,KAAK,CAAC;IAE/B,YAAY,UAAmC,EAAE;QAC7C,KAAK,EAAE,CAAC;QAGR,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB;eAC1C,CAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QAEjF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAE,KAAa,EAAU,EAAE;YAC5D,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ;gBACzC,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;oBACnC,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAExB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,uBAAuB,CAAC;YACnC,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAGpC,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;gBACjD,OAAO,WAAW,CAAC;YACvB,CAAC;YACD,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACjB,CAAC;YAGD,IAAI,gBAAgB,EAAE,CAAC;gBAEnB,IAAI,iBAAiB,GAAG,OAAO,CAAC;gBAChC,IAAI,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvE,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvD,CAAC;gBAGD,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACjD,MAAM,kBAAkB,GAAG,SAAS,IAAI,CAAC;oBACrC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;oBACvC,CAAC,CAAC,iBAAiB,CAAC;gBAGxB,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAE/C,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;oBACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,aAAa,KAAK,iCAAiC,OAAO,KAAK;wBAC/D,mEAAmE,CACtE,CAAC;oBAGF,OAAO,iBAAiB,CAAC;gBAC7B,CAAC;gBAKD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,UAAU,EAAE,CAAC;oBAGb,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAClC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,4CAA4C,CAAC,IAAI,CAAC,KAAK,CAAC,CAC1F,CAAC;oBACF,IAAI,eAAe,EAAE,CAAC;wBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,aAAa,KAAK,qBAAqB,OAAO,KAAK;4BACnD,mEAAmE,CACtE,CAAC;wBACF,OAAO,OAAO,CAAC;oBACnB,CAAC;gBACL,CAAC;gBAGD,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,GAAG,KAAK,KAAK,OAAO,kDAAkD;oBACtE,mBAAmB,uBAAuB,GAAG,CAChD,CAAC;gBACF,OAAO,uBAAuB,CAAC;YACnC,CAAC;YAGD,IAAI,CAAC,GAAG,CAAC,IAAI,CACT,GAAG,KAAK,KAAK,OAAO,gFAAgF;gBACpG,mBAAmB,uBAAuB,8DAA8D,CAC3G,CAAC;YACF,OAAO,uBAAuB,CAAC;QACnC,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI;eACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB;eAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB;eAC/B,uBAAuB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;QAE7D,MAAM,YAAY,GAAG,CAAC,KAAc,EAAiB,EAAE;YACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;YACrF,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,uBAAuB,CAAC;QAChH,MAAM,oBAAoB,GAAuC,OAAO,CAAC,KAAK;YAC1E,CAAC,CAAC,OAAO,CAAC,KAAK;YACf,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBACjC,EAAE,KAAK,CAAC,GAAG,CAAC;iBACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE7C,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC;YACtD,CAAC,CAAC,oBAAoB;iBACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACnC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;YACpD,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;QACtD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAClD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3F,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACxD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,KAAK,CAAC,GAAG,CAAC;iBAC/C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,mBAAmB;YACpB,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,OAAO,CAAC;QACxF,IAAI,CAAC,eAAe;YAChB,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,SAAS,CAAC;QACxF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,OAAO,CAAC;QACxF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU;eAC7B,OAAO,CAAC,GAAG,CAAC,eAAe;eAC3B,WAAW,CAAC,IAAI;eAChB,mBAAmB,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;eACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB;eAC9B,WAAW,CAAC,OAAO;eACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB;eAC/B,OAAO,CAAC;QAEf,MAAM,mBAAmB,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC,GAAG,CAAC;YAC1F,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;YAChE,CAAC,CAAC,CAAC,CAAC;QAER,MAAM,mBAAmB,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE;YACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjD,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvE,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,YAAqB,EAAW,EAAE;YACpE,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC9C,IAAI,UAAU,KAAK,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACvC,IAAI,UAAU,KAAK,OAAO;oBAAE,OAAO,KAAK,CAAC;YAC7C,CAAC;YACD,OAAO,YAAY,CAAC;QACxB,CAAC,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,kBAAkB,IAAI,4BAA4B,CAAC,CAAC;QACnG,MAAM,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,IAAI,2BAA2B,CAAC,CAAC;QAC/F,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QACxF,MAAM,2BAA2B,GAAG,mBAAmB,CACnD,OAAO,CAAC,2BAA2B;eAC5B,OAAO,CAAC,GAAG,CAAC,sCAAsC,EACzD,uCAAuC,CAC1C,CAAC;QACF,MAAM,qCAAqC,GAAG,mBAAmB,CAC7D,OAAO,CAAC,qCAAqC;eACtC,OAAO,CAAC,GAAG,CAAC,iDAAiD,EACpE,kDAAkD,CACrD,CAAC;QAEF,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU;eACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B;eACtC,OAAO,CAAC,GAAG,CAAC,mBAAmB;eAC/B,uBAAuB,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,+BAA+B,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,IAAI,uBAAuB,CAAC;QACxH,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QAGzD,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAC1C,mBAAmB,EACnB,2BAA2B,EAC3B,qCAAqC,CACxC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAKlE,CAAC;IAEQ,EAAE,CACP,KAAQ,EACR,QAAmC;QAEnC,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACrE,CAAC;IAEQ,IAAI,CACT,KAAQ,EACR,QAAmC;QAEnC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACvE,CAAC;IAEQ,GAAG,CACR,KAAQ,EACR,QAAmC;QAEnC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAwC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC9D,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oDAAoD,GAAG,EAAE,CAAC,CAAC;YAEzE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAEpF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAE/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAE9E,MAAM,OAAO,GAAuC,IAAI,CAAC,eAAe;gBACpE,CAAC,CAAC;oBACE,kBAAkB,EAAE,IAAI,CAAC,eAAe;oBACxC,wBAAwB,EAAE,IAAI,CAAC,eAAe;iBAC/C;gBACH,CAAC,CAAC,SAAS,CAAC;YAEhB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE;gBACzC,OAAO;gBACP,iBAAiB,EAAE,KAAK;aAC3B,CAAC,CAAC;YAEH,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,EAAE,QAAQ,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,MAAiB;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACxE,IAAI,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAEvE,IAAI,CAAC,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;gBACtC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;gBACtC,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;gBAI/C,MAAM,kBAAkB,GAAG,MAA4I,CAAC;gBACxK,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC;gBAC3E,MAAM,UAAU,GAAG,UAAU,EAAE,aAAa,IAAI,SAAS,CAAC;gBAC1D,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC;gBAEvD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;gBACjG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;gBAExC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;oBAC7B,MAAM;oBACN,QAAQ;oBACR,IAAI,EAAE,IAAI,CAAC,UAAU;oBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;iBACpC,CAAC,CAAC;gBAEH,MAAM,oBAAoB,GAAG,CAAC,IAAa,EAAU,EAAE;oBACnD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC3B,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,IAAI,CAAC,MAAM,CAAC;oBACvB,CAAC;oBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9F,CAAC;oBAED,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;wBAC9B,OAAO,IAAI,CAAC,UAAU,CAAC;oBAC3B,CAAC;oBAED,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3B,OAAO,IAAI,CAAC,UAAU,CAAC;oBAC3B,CAAC;oBAED,OAAO,CAAC,CAAC;gBACb,CAAC,CAAC;gBAEF,MAAM,mBAAmB,GAAG,CAAC,IAAa,EAAE,cAAuB,EAAU,EAAE;oBAC3E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC3B,OAAO,IAAI,CAAC;oBAChB,CAAC;oBAED,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC;oBAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAG,OAAO,cAAc,KAAK,QAAQ;4BAClD,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAChE,CAAC;oBAED,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;wBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBAED,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACvF,CAAC;oBAED,OAAO,EAAE,CAAC;gBACd,CAAC,CAAC;gBAEM,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBAClC,IAAI,CAAC;wBACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;wBAC9C,IAAI,UAAU,GAAG,yBAAyB,EAAE,CAAC;4BACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CACV,+BAA+B,UAAU,gBAAgB,yBAAyB,cAAc,CACnG,CAAC;4BACF,OAAO;wBACX,CAAC;wBAED,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;wBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBACzF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;wBAG3D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;4BAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;4BAC1E,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;4BAC1C,OAAO;wBACX,CAAC;wBAED,MAAM,UAAU,GAAG,uBAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;wBAC7D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;4BACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC/E,OAAO;wBACX,CAAC;wBAED,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC;wBAC/C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACnD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACpD,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;oBACpD,CAAC;gBACL,CAAC,CAAC,CAAC;YAEP,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,oBAAoB,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;gBACpE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAE/D,IAAI,UAAU,EAAE,CAAC;gBACb,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;oBAChC,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;iBACxC,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gDAAgD,IAAI,YAAY,MAAM,GAAG,CAAC,CAAC;gBAEzF,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,gBAAgB,CAAC,IAAY;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAID,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzE,OAAO,IAAI,eAAe,GAAG,CAAC;IAClC,CAAC;IAEO,YAAY;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,OAAO,GAAG,MAAM,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IACtF,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC;gBACX,IAAI,EAAE,iBAAiB;gBACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,sBAAsB;aACjC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACzD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAChD,CAAC;IAED,SAAS;QAEL,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7G,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;SAClE,CAAC,CAAC,CAAC;QAEJ,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE;YAC7B,WAAW,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YAC/E,UAAU,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YACvE,kBAAkB,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACnF,kBAAkB,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACjD,gBAAgB,EAAE,CAAC,oBAAoB,CAAC;YACxC,uBAAuB,EAAE,CAAC,qBAAqB,CAAC;YAChD,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,IAAI,IAAI;YAC5D,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,IAAI,IAAI;YACzD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;YAC/C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;gBAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC9F,CAAC,CAAC,IAAI;YACV,cAAc,EAAE,IAAI,CAAC,cAAc;gBAC/B,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;gBAClH,CAAC,CAAC,IAAI;YACV,SAAS,EAAE,IAAI,CAAC,SAAS;gBACrB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE;gBAC1E,CAAC,CAAC,IAAI;YACV,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI;YACjF,iBAAiB,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI;YACpF,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE;YACtD,qBAAqB,EAAE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE;YAC9D,WAAW,EAAE,eAAe;YAC5B,kBAAkB,EAAE,KAAK;YACzB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE;YAC/D,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,EAAE;SACvE,CAAC;IACN,CAAC;IAED,KAAK,CAAC,qBAAqB,CACvB,MAAc,EACd,UAAmC,EAAE,EACrC,UAAkC,EAAE;QAEpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;gBAGhF,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;oBAC3B,IAAI,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBAC3D,MAAM,SAAS,GAAG,GAAG,EAAE;4BACnB,OAAO,EAAE,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACzB,CAAC,CAAC;wBAGF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;4BAC7B,OAAO,EAAE,CAAC;4BAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC3B,CAAC,CAAC;wBAEF,MAAM,eAAe,GAAG,CAAC,GAA4B,EAAE,EAAE;4BACrD,OAAO,EAAE,CAAC;4BAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC5E,CAAC,CAAC;wBAEF,MAAM,OAAO,GAAG,GAAG,EAAE;4BACjB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;4BACjC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;4BAC3B,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;4BAE7C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;wBACvC,CAAC,CAAC;wBAEF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;wBAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;wBAE9C,IAAI,CAAC;4BACD,IAAI,CAAC,WAAW,EAAE,CAAC;wBACvB,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,OAAO,CAAC,CAAC,CAAC,CAAC;wBACf,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;gBAED,IAAI,CAAC;oBAED,MAAM,cAAc,GAAG,IAAI,CAAC;oBAC5B,IAAI,SAAoD,CAAC;oBACzD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;wBACpD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;oBAC/F,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC;wBACD,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC;oBACjE,CAAC;4BAAS,CAAC;wBACP,IAAI,SAAS;4BAAE,YAAY,CAAC,SAAS,CAAC,CAAC;oBAC3C,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;oBAI9C,MAAM,MAAM,GAAG,GAAqC,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,oDAAoD,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC1G,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACvF,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,iDAAiD,IAAI,CAAC,iBAAiB,wBAAwB,CAAC,CAAC;YACrH,CAAC;YACD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACtC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBACzB,OAAO,EAAE,OAAmC;oBAC5C,MAAM,EAAE,MAAmC;oBAC3C,MAAM;oBACN,OAAO;oBACP,OAAO;iBACV,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAI,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC7B,MAAc,EACd,OAAgC,EAChC,OAA+B;QAInC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,sBAAsB,CAAC;QAGjE,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACtE,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO,QAAwB,CAAC;YACpC,CAAC;QACL,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE7F,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAA4B;YACrC,IAAI,EAAE,oBAAoB;YAC1B,SAAS;YACT,MAAM;YACN,OAAO;SACV,CAAC;QAEF,MAAM,aAAa,GAAG,OAAgC,CAAC;QAGvD,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEpB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC;YAC9C,OAAO,aAAa,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAEO,mBAAmB;QACvB,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAGjD,OACI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;YAClC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,EACrF,CAAC;YACC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,IAAI,EAAE,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;qBAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;qBAClB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,CAAC,OAAgC;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAChE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;YAC3F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,OAAgC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAC1D,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;YAC1F,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACrC,SAAS,EAAE,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;gBAC9E,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,SAAS,GAAG,CAAC,CAAC;IACzB,CAAC;IAEO,cAAc,CAClB,KAAQ,EACR,GAAG,IAA2C;QAE9C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/automation/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/automation/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/automation/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAG/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,qBAAa,iBAAkB,SAAQ,YAAY;IAS3C,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,8BAA8B;IAV1C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,aAAa,CAAC,CAAY;IAClC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAC,CAAO;IAC7B,OAAO,CAAC,GAAG,CAAmC;IAC9C,OAAO,CAAC,cAAc,CAAkG;gBAG5G,mBAAmB,EAAE,MAAM,EAC3B,oBAAoB,EAAE,MAAM,EAC5B,8BAA8B,EAAE,MAAM;IAS3C,sBAAsB,IAAI,MAAM;IAIhC,cAAc,CACjB,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,EACtB,UAAU,CAAC,EAAE,MAAM,GACpB,IAAI;IAqCA,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS;IAevD,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,GAAG,OAAO;IAyC9E,gBAAgB,IAAI,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC;IAI9C,gBAAgB,IAAI,SAAS,GAAG,SAAS;IAIzC,WAAW,IAAI,OAAO;IAItB,cAAc,IAAI,IAAI;IA4BtB,aAAa,IAAI,IAAI;IAOrB,qBAAqB,IAAI,IAAI;IAI7B,kBAAkB,IAAI,IAAI,GAAG,SAAS;IAItC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAUxD"}
|
|
@@ -2,6 +2,7 @@ import { WebSocket } from 'ws';
|
|
|
2
2
|
import { Logger } from '../utils/logger.js';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
4
|
import { EventEmitter } from 'node:events';
|
|
5
|
+
const RATE_LIMIT_WINDOW_MS = 60_000;
|
|
5
6
|
export class ConnectionManager extends EventEmitter {
|
|
6
7
|
heartbeatIntervalMs;
|
|
7
8
|
maxMessagesPerMinute;
|
|
@@ -64,13 +65,21 @@ export class ConnectionManager extends EventEmitter {
|
|
|
64
65
|
return info;
|
|
65
66
|
}
|
|
66
67
|
recordInboundMessage(socket, isAutomationRequest) {
|
|
68
|
+
if (!this.activeSockets.has(socket)) {
|
|
69
|
+
this.rateLimitState.delete(socket);
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
67
72
|
if (this.maxMessagesPerMinute <= 0 && this.maxAutomationRequestsPerMinute <= 0) {
|
|
68
73
|
return true;
|
|
69
74
|
}
|
|
70
75
|
const nowMs = Date.now();
|
|
71
|
-
|
|
76
|
+
let state = this.rateLimitState.get(socket);
|
|
77
|
+
if (!state) {
|
|
78
|
+
state = { windowStartMs: nowMs, messageCount: 0, automationCount: 0 };
|
|
79
|
+
this.rateLimitState.set(socket, state);
|
|
80
|
+
}
|
|
72
81
|
const windowElapsedMs = nowMs - state.windowStartMs;
|
|
73
|
-
if (windowElapsedMs >=
|
|
82
|
+
if (windowElapsedMs >= RATE_LIMIT_WINDOW_MS) {
|
|
74
83
|
state.windowStartMs = nowMs;
|
|
75
84
|
state.messageCount = 0;
|
|
76
85
|
state.automationCount = 0;
|
|
@@ -79,12 +88,11 @@ export class ConnectionManager extends EventEmitter {
|
|
|
79
88
|
if (isAutomationRequest) {
|
|
80
89
|
state.automationCount += 1;
|
|
81
90
|
}
|
|
82
|
-
this.
|
|
83
|
-
if (this.maxMessagesPerMinute > 0 && state.messageCount >= this.maxMessagesPerMinute) {
|
|
91
|
+
if (this.maxMessagesPerMinute > 0 && state.messageCount > this.maxMessagesPerMinute) {
|
|
84
92
|
this.log.warn(`Inbound message rate exceeded (${state.messageCount}/${this.maxMessagesPerMinute} per minute).`);
|
|
85
93
|
return false;
|
|
86
94
|
}
|
|
87
|
-
if (isAutomationRequest && this.maxAutomationRequestsPerMinute > 0 && state.automationCount
|
|
95
|
+
if (isAutomationRequest && this.maxAutomationRequestsPerMinute > 0 && state.automationCount > this.maxAutomationRequestsPerMinute) {
|
|
88
96
|
this.log.warn(`Inbound automation request rate exceeded (${state.automationCount}/${this.maxAutomationRequestsPerMinute} per minute).`);
|
|
89
97
|
return false;
|
|
90
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/automation/connection-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/automation/connection-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/automation/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,gBAAiB,SAAQ,YAAY;IAK1C,OAAO,CAAC,eAAe,CAAC;IAJ5B,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAQ;gBAGzC,eAAe,CAAC,EAAE,MAAM,YAAA;IAK7B,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAE,MAA0C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/automation/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAI/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,qBAAa,gBAAiB,SAAQ,YAAY;IAK1C,OAAO,CAAC,eAAe,CAAC;IAJ5B,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAQ;gBAGzC,eAAe,CAAC,EAAE,MAAM,YAAA;IAK7B,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,GAAE,MAA0C,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA0FpI,OAAO,CAAC,yBAAyB;CAQpC"}
|
|
@@ -12,14 +12,41 @@ export class HandshakeHandler extends EventEmitter {
|
|
|
12
12
|
}
|
|
13
13
|
initiateHandshake(socket, timeoutMs = this.DEFAULT_HANDSHAKE_TIMEOUT_MS) {
|
|
14
14
|
return new Promise((resolve, reject) => {
|
|
15
|
-
let
|
|
15
|
+
let settled = false;
|
|
16
|
+
let helloTimer;
|
|
16
17
|
const timeout = setTimeout(() => {
|
|
17
|
-
if (!
|
|
18
|
+
if (!settled) {
|
|
18
19
|
this.log.warn('Automation bridge client handshake timed out');
|
|
19
|
-
|
|
20
|
-
reject(new Error('Handshake timeout'));
|
|
20
|
+
rejectHandshake(new Error('Handshake timeout'), 4002, 'Handshake timeout');
|
|
21
21
|
}
|
|
22
22
|
}, timeoutMs);
|
|
23
|
+
const cleanup = () => {
|
|
24
|
+
clearTimeout(timeout);
|
|
25
|
+
if (helloTimer) {
|
|
26
|
+
clearTimeout(helloTimer);
|
|
27
|
+
helloTimer = undefined;
|
|
28
|
+
}
|
|
29
|
+
socket.off('message', onMessage);
|
|
30
|
+
socket.off('error', onError);
|
|
31
|
+
socket.off('close', onClose);
|
|
32
|
+
};
|
|
33
|
+
const rejectHandshake = (error, closeCode, closeReason) => {
|
|
34
|
+
if (settled)
|
|
35
|
+
return;
|
|
36
|
+
settled = true;
|
|
37
|
+
if (closeCode !== undefined) {
|
|
38
|
+
socket.close(closeCode, closeReason);
|
|
39
|
+
}
|
|
40
|
+
cleanup();
|
|
41
|
+
reject(error);
|
|
42
|
+
};
|
|
43
|
+
const resolveHandshake = (metadata) => {
|
|
44
|
+
if (settled)
|
|
45
|
+
return;
|
|
46
|
+
settled = true;
|
|
47
|
+
cleanup();
|
|
48
|
+
resolve(metadata);
|
|
49
|
+
};
|
|
23
50
|
const onMessage = (data) => {
|
|
24
51
|
let parsed;
|
|
25
52
|
const text = typeof data === 'string' ? data : data.toString('utf8');
|
|
@@ -28,49 +55,35 @@ export class HandshakeHandler extends EventEmitter {
|
|
|
28
55
|
}
|
|
29
56
|
catch (error) {
|
|
30
57
|
this.log.error('Received non-JSON automation message during handshake', error);
|
|
31
|
-
|
|
32
|
-
cleanup();
|
|
33
|
-
reject(new Error('Invalid JSON payload'));
|
|
58
|
+
rejectHandshake(new Error('Invalid JSON payload'), 4003, 'Invalid JSON payload');
|
|
34
59
|
return;
|
|
35
60
|
}
|
|
36
61
|
const validation = bridgeAckSchema.safeParse(parsed);
|
|
37
62
|
if (validation.success) {
|
|
38
|
-
handshakeComplete = true;
|
|
39
|
-
cleanup();
|
|
40
63
|
const metadata = this.sanitizeHandshakeMetadata(validation.data);
|
|
41
|
-
|
|
64
|
+
resolveHandshake(metadata);
|
|
42
65
|
return;
|
|
43
66
|
}
|
|
44
67
|
const typeHint = typeof parsed.type === 'string' ? parsed.type : 'unknown';
|
|
45
|
-
this.log.warn(`Expected bridge_ack handshake, received ${typeHint}`, validation.error.
|
|
46
|
-
|
|
47
|
-
cleanup();
|
|
48
|
-
reject(new Error(`Handshake expected bridge_ack, got ${typeHint}`));
|
|
68
|
+
this.log.warn(`Expected bridge_ack handshake, received ${typeHint}`, validation.error.issues);
|
|
69
|
+
rejectHandshake(new Error(`Handshake expected bridge_ack, got ${typeHint}`), 4004, 'Handshake expected bridge_ack');
|
|
49
70
|
};
|
|
50
71
|
const onError = (error) => {
|
|
51
|
-
|
|
52
|
-
reject(error);
|
|
72
|
+
rejectHandshake(error);
|
|
53
73
|
};
|
|
54
74
|
const onClose = () => {
|
|
55
|
-
|
|
56
|
-
reject(new Error('Socket closed during handshake'));
|
|
57
|
-
};
|
|
58
|
-
const cleanup = () => {
|
|
59
|
-
clearTimeout(timeout);
|
|
60
|
-
socket.off('message', onMessage);
|
|
61
|
-
socket.off('error', onError);
|
|
62
|
-
socket.off('close', onClose);
|
|
75
|
+
rejectHandshake(new Error('Socket closed during handshake'));
|
|
63
76
|
};
|
|
64
77
|
socket.on('message', onMessage);
|
|
65
78
|
socket.on('error', onError);
|
|
66
79
|
socket.on('close', onClose);
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
if (socket.readyState === WebSocket.OPEN) {
|
|
80
|
+
helloTimer = setTimeout(() => {
|
|
81
|
+
if (!settled && socket.readyState === WebSocket.OPEN) {
|
|
69
82
|
const helloPayload = {
|
|
70
83
|
type: 'bridge_hello',
|
|
71
84
|
capabilityToken: this.capabilityToken || undefined
|
|
72
85
|
};
|
|
73
|
-
this.log.debug(
|
|
86
|
+
this.log.debug('Sending bridge_hello (delayed)');
|
|
74
87
|
socket.send(JSON.stringify(helloPayload));
|
|
75
88
|
}
|
|
76
89
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/automation/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAKlC;IAJJ,GAAG,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC5B,4BAA4B,GAAG,IAAI,CAAC;IAErD,YACY,eAAwB;QAEhC,KAAK,EAAE,CAAC;QAFA,oBAAe,GAAf,eAAe,CAAS;IAGpC,CAAC;IAEM,iBAAiB,CAAC,MAAiB,EAAE,YAAoB,IAAI,CAAC,4BAA4B;QAC7F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/automation/handshake.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { AutomationBridge } from './bridge.js';
|
|
2
|
-
export
|
|
2
|
+
export type { AutomationBridgeOptions, AutomationBridgeMessage, AutomationBridgeResponseMessage, PendingRequestDetail, AutomationBridgeConnectionInfo, AutomationBridgeConnectedEvent, AutomationBridgeDisconnectedEvent, AutomationBridgePortError, ProgressUpdateMessage, AutomationBridgeStatus, PendingRequest, QueuedRequestItem, SocketInfo, AutomationBridgeEvents } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|