@structured-world/gitlab-mcp 7.0.2 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Advanced GitLab MCP server — 44 tools across 18 entity types with CQRS architecture, OAuth 2.1, and multiple transport modes.
6
6
 
7
- [![Install in Claude Desktop](https://img.shields.io/badge/Claude_Desktop-Install_Extension-F97316?style=for-the-badge)](https://gitlab-mcp.sw.foundation/downloads/gitlab-mcp-7.0.2.mcpb)
7
+ [![Install in Claude Desktop](https://img.shields.io/badge/Claude_Desktop-Install_Extension-F97316?style=for-the-badge)](https://gitlab-mcp.sw.foundation/downloads/gitlab-mcp-7.2.0.mcpb)
8
8
  [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_MCP_Server-007ACC?style=for-the-badge&logo=visualstudiocode&logoColor=white)](vscode:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
9
9
  [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_MCP_Server-24bfa5?style=for-the-badge&logo=visualstudiocode&logoColor=white)](vscode-insiders:mcp/install?%7B%22name%22%3A%22gitlab-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40structured-world%2Fgitlab-mcp%22%5D%7D)
10
10
 
@@ -88,7 +88,7 @@ The server handles GitLab connectivity issues gracefully:
88
88
  - **Bounded startup** — Server starts within `GITLAB_INIT_TIMEOUT_MS` (default 5s) regardless of GitLab availability
89
89
  - **Disconnected mode** — When GitLab is unreachable (`disconnected`/`failed` state), only the `manage_context` tool is exposed, with local actions such as `whoami`, `switch_profile`, and `set_scope` for diagnostics. During active reconnect (`connecting` state), the full tool list remains available so MCP clients don't lose their tool catalog during brief outages. MCP clients are notified of tool availability changes via `tools/list_changed`
90
90
  - **Auto-reconnect** — Exponential backoff reconnection (5s → 60s) with ±10% jitter
91
- - **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Runtime auth errors from tool calls are forwarded to `HealthMonitor.reportError()` via `classifyError()`; the remaining gap is token-revocation/403 detection (#370)
91
+ - **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Mid-session token revocation is detected via an authenticated `HEAD /api/v4/user` check that runs alongside each periodic health check (static token mode only; skipped in OAuth mode). A 401 or 403 on this check transitions the instance to `failed` state immediately.
92
92
  - **Instance health monitor** — Each monitored instance URL has its own XState state machine. Untracked OAuth URLs currently pass through as reachable.
93
93
 
94
94
  | Variable | Default | Description |
@@ -100,6 +100,8 @@ The server handles GitLab connectivity issues gracefully:
100
100
  | `GITLAB_FAILURE_THRESHOLD` | `3` | Consecutive transient failures before disconnecting |
101
101
  | `GITLAB_TOOL_TIMEOUT_MS` | `120000` | Max time for tool/bootstrap execution before timeout |
102
102
  | `GITLAB_RESPONSE_WRITE_TIMEOUT_MS` | `10000` | Max time to flush a non-SSE response before destroying zombie connection (`0` to disable; SSE uses heartbeat) |
103
+ | `GITLAB_INSTANCE_CACHE_MAX` | `100` | Max number of per-URL instance states kept in memory (OAuth multi-tenant; LRU eviction when exceeded) |
104
+ | `GITLAB_INSTANCE_TTL_MS` | `3600000` | TTL for idle per-URL instance states in ms; evicted on next insert (OAuth multi-tenant) |
103
105
 
104
106
  ## Feature Flags
105
107
 
package/README.md.in CHANGED
@@ -88,7 +88,7 @@ The server handles GitLab connectivity issues gracefully:
88
88
  - **Bounded startup** — Server starts within `GITLAB_INIT_TIMEOUT_MS` (default 5s) regardless of GitLab availability
89
89
  - **Disconnected mode** — When GitLab is unreachable (`disconnected`/`failed` state), only the `manage_context` tool is exposed, with local actions such as `whoami`, `switch_profile`, and `set_scope` for diagnostics. During active reconnect (`connecting` state), the full tool list remains available so MCP clients don't lose their tool catalog during brief outages. MCP clients are notified of tool availability changes via `tools/list_changed`
90
90
  - **Auto-reconnect** — Exponential backoff reconnection (5s → 60s) with ±10% jitter
91
- - **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Runtime auth errors from tool calls are forwarded to `HealthMonitor.reportError()` via `classifyError()`; the remaining gap is token-revocation/403 detection (#370)
91
+ - **Error classification** — Transient errors (network, 5xx, timeouts) trigger auto-reconnect. Auth/config errors at startup transition to `failed` state (no auto-reconnect). Mid-session token revocation is detected via an authenticated `HEAD /api/v4/user` check that runs alongside each periodic health check (static token mode only; skipped in OAuth mode). A 401 or 403 on this check transitions the instance to `failed` state immediately.
92
92
  - **Instance health monitor** — Each monitored instance URL has its own XState state machine. Untracked OAuth URLs currently pass through as reachable.
93
93
 
94
94
  | Variable | Default | Description |
@@ -100,6 +100,8 @@ The server handles GitLab connectivity issues gracefully:
100
100
  | `GITLAB_FAILURE_THRESHOLD` | `3` | Consecutive transient failures before disconnecting |
101
101
  | `GITLAB_TOOL_TIMEOUT_MS` | `120000` | Max time for tool/bootstrap execution before timeout |
102
102
  | `GITLAB_RESPONSE_WRITE_TIMEOUT_MS` | `10000` | Max time to flush a non-SSE response before destroying zombie connection (`0` to disable; SSE uses heartbeat) |
103
+ | `GITLAB_INSTANCE_CACHE_MAX` | `100` | Max number of per-URL instance states kept in memory (OAuth multi-tenant; LRU eviction when exceeded) |
104
+ | `GITLAB_INSTANCE_TTL_MS` | `3600000` | TTL for idle per-URL instance states in ms; evicted on next insert (OAuth multi-tenant) |
103
105
 
104
106
  ## Feature Flags
105
107
 
@@ -56,6 +56,8 @@ export declare const RECONNECT_BASE_DELAY_MS: number;
56
56
  export declare const RECONNECT_MAX_DELAY_MS: number;
57
57
  export declare const HEALTH_CHECK_INTERVAL_MS: number;
58
58
  export declare const FAILURE_THRESHOLD: number;
59
+ export declare const GITLAB_INSTANCE_CACHE_MAX: number;
60
+ export declare const GITLAB_INSTANCE_TTL_MS: number;
59
61
  export declare const POOL_MAX_CONNECTIONS: number;
60
62
  export declare const API_RETRY_ENABLED: boolean;
61
63
  export declare const API_RETRY_MAX_ATTEMPTS: number;
@@ -33,8 +33,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.API_RETRY_MAX_DELAY_MS = exports.API_RETRY_BASE_DELAY_MS = exports.API_RETRY_MAX_ATTEMPTS = exports.API_RETRY_ENABLED = exports.POOL_MAX_CONNECTIONS = exports.FAILURE_THRESHOLD = exports.HEALTH_CHECK_INTERVAL_MS = exports.RECONNECT_MAX_DELAY_MS = exports.RECONNECT_BASE_DELAY_MS = exports.INIT_TIMEOUT_MS = exports.HANDLER_TIMEOUT_MS = exports.BODY_TIMEOUT_MS = exports.HEADERS_TIMEOUT_MS = exports.CONNECT_TIMEOUT_MS = exports.HTTP_KEEPALIVE_TIMEOUT_MS = exports.SSE_HEARTBEAT_MS = exports.MAX_SAFE_TIMEOUT_MS = exports.TRUST_PROXY = exports.SSL_PASSPHRASE = exports.SSL_CA_PATH = exports.SSL_KEY_PATH = exports.SSL_CERT_PATH = exports.PORT = exports.HOST = exports.USE_ITERATIONS = exports.USE_SEARCH = exports.USE_MEMBERS = exports.USE_REFS = exports.USE_RELEASES = exports.USE_INTEGRATIONS = exports.USE_WEBHOOKS = exports.USE_SNIPPETS = exports.USE_VARIABLES = exports.USE_FILES = exports.USE_MRS = exports.USE_LABELS = exports.USE_WORKITEMS = exports.USE_PIPELINE = exports.USE_MILESTONE = exports.USE_GITLAB_WIKI = exports.GITLAB_SCHEMA_MODE = exports.LOG_FILTER = exports.LOG_FORMAT = exports.GITLAB_DENIED_ACTIONS = exports.GITLAB_DENIED_TOOLS_REGEX = exports.GITLAB_CROSS_REFS = exports.GITLAB_READ_ONLY_MODE = exports.IS_OLD = exports.GITLAB_AUTH_COOKIE_PATH = exports.GITLAB_TOKEN = void 0;
37
- exports.packageVersion = exports.packageName = exports.GITLAB_ALLOWED_PROJECT_IDS = exports.GITLAB_PROJECT_ID = exports.GITLAB_API_URL = exports.GITLAB_BASE_URL = exports.GITLAB_CA_CERT_PATH = exports.NODE_TLS_REJECT_UNAUTHORIZED = exports.HTTPS_PROXY = exports.HTTP_PROXY = exports.DASHBOARD_ENABLED = exports.SKIP_TLS_VERIFY = exports.RATE_LIMIT_SESSION_MAX_REQUESTS = exports.RATE_LIMIT_SESSION_WINDOW_MS = exports.RATE_LIMIT_SESSION_ENABLED = exports.RATE_LIMIT_IP_MAX_REQUESTS = exports.RATE_LIMIT_IP_WINDOW_MS = exports.RATE_LIMIT_IP_ENABLED = exports.RESPONSE_WRITE_TIMEOUT_MS = void 0;
36
+ exports.API_RETRY_MAX_ATTEMPTS = exports.API_RETRY_ENABLED = exports.POOL_MAX_CONNECTIONS = exports.GITLAB_INSTANCE_TTL_MS = exports.GITLAB_INSTANCE_CACHE_MAX = exports.FAILURE_THRESHOLD = exports.HEALTH_CHECK_INTERVAL_MS = exports.RECONNECT_MAX_DELAY_MS = exports.RECONNECT_BASE_DELAY_MS = exports.INIT_TIMEOUT_MS = exports.HANDLER_TIMEOUT_MS = exports.BODY_TIMEOUT_MS = exports.HEADERS_TIMEOUT_MS = exports.CONNECT_TIMEOUT_MS = exports.HTTP_KEEPALIVE_TIMEOUT_MS = exports.SSE_HEARTBEAT_MS = exports.MAX_SAFE_TIMEOUT_MS = exports.TRUST_PROXY = exports.SSL_PASSPHRASE = exports.SSL_CA_PATH = exports.SSL_KEY_PATH = exports.SSL_CERT_PATH = exports.PORT = exports.HOST = exports.USE_ITERATIONS = exports.USE_SEARCH = exports.USE_MEMBERS = exports.USE_REFS = exports.USE_RELEASES = exports.USE_INTEGRATIONS = exports.USE_WEBHOOKS = exports.USE_SNIPPETS = exports.USE_VARIABLES = exports.USE_FILES = exports.USE_MRS = exports.USE_LABELS = exports.USE_WORKITEMS = exports.USE_PIPELINE = exports.USE_MILESTONE = exports.USE_GITLAB_WIKI = exports.GITLAB_SCHEMA_MODE = exports.LOG_FILTER = exports.LOG_FORMAT = exports.GITLAB_DENIED_ACTIONS = exports.GITLAB_DENIED_TOOLS_REGEX = exports.GITLAB_CROSS_REFS = exports.GITLAB_READ_ONLY_MODE = exports.IS_OLD = exports.GITLAB_AUTH_COOKIE_PATH = exports.GITLAB_TOKEN = void 0;
37
+ exports.packageVersion = exports.packageName = exports.GITLAB_ALLOWED_PROJECT_IDS = exports.GITLAB_PROJECT_ID = exports.GITLAB_API_URL = exports.GITLAB_BASE_URL = exports.GITLAB_CA_CERT_PATH = exports.NODE_TLS_REJECT_UNAUTHORIZED = exports.HTTPS_PROXY = exports.HTTP_PROXY = exports.DASHBOARD_ENABLED = exports.SKIP_TLS_VERIFY = exports.RATE_LIMIT_SESSION_MAX_REQUESTS = exports.RATE_LIMIT_SESSION_WINDOW_MS = exports.RATE_LIMIT_SESSION_ENABLED = exports.RATE_LIMIT_IP_MAX_REQUESTS = exports.RATE_LIMIT_IP_WINDOW_MS = exports.RATE_LIMIT_IP_ENABLED = exports.RESPONSE_WRITE_TIMEOUT_MS = exports.API_RETRY_MAX_DELAY_MS = exports.API_RETRY_BASE_DELAY_MS = void 0;
38
38
  exports.shouldSkipAccessLog = shouldSkipAccessLog;
39
39
  exports.shouldSkipAccessLogRequest = shouldSkipAccessLogRequest;
40
40
  exports.detectSchemaMode = detectSchemaMode;
@@ -256,6 +256,8 @@ exports.RECONNECT_BASE_DELAY_MS = parseTimerMs(process.env.GITLAB_RECONNECT_BASE
256
256
  exports.RECONNECT_MAX_DELAY_MS = parseTimerMs(process.env.GITLAB_RECONNECT_MAX_DELAY_MS, 60000);
257
257
  exports.HEALTH_CHECK_INTERVAL_MS = parseTimerMs(process.env.GITLAB_HEALTH_CHECK_INTERVAL_MS, 60000);
258
258
  exports.FAILURE_THRESHOLD = parseStrictInt(process.env.GITLAB_FAILURE_THRESHOLD, 3);
259
+ exports.GITLAB_INSTANCE_CACHE_MAX = parseStrictInt(process.env.GITLAB_INSTANCE_CACHE_MAX, 100);
260
+ exports.GITLAB_INSTANCE_TTL_MS = parseTimerMs(process.env.GITLAB_INSTANCE_TTL_MS, 60 * 60 * 1000);
259
261
  exports.POOL_MAX_CONNECTIONS = parseStrictInt(process.env.GITLAB_POOL_MAX_CONNECTIONS, 25);
260
262
  exports.API_RETRY_ENABLED = process.env.GITLAB_API_RETRY_ENABLED !== 'false';
261
263
  exports.API_RETRY_MAX_ATTEMPTS = parseStrictInt(process.env.GITLAB_API_RETRY_MAX_ATTEMPTS, 3, true);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+MA,kDAmCC;AASD,gEAEC;AAiCD,4CA2BC;AA2MD,sDAcC;AAwBD,kEAgBC;AAQD,sEA6BC;AAQD,oEA4BC;AAQD,wCAMC;AAQD,8CAMC;AA/pBD,2CAA6B;AAC7B,uCAAyB;AACzB,6BAAwB;AAIxB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAGvD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACxC,QAAA,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAC9D,QAAA,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9C,QAAA,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,CAAC;AAQrE,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC;AAE9D,QAAA,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB;IAC5E,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACnD,CAAC,CAAC,SAAS,CAAC;AAQd,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YAEtB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEY,QAAA,qBAAqB,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAO3F,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,MAAM,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAEY,QAAA,UAAU,GAAc,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAS5E,MAAM,mBAAmB,GAAG,OAAC;KAC1B,MAAM,CAAC;IACN,MAAM,EAAE,OAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qGAAqG,CACtG;IACH,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iGAAiG,CAClG;CACJ,CAAC;KACD,QAAQ,CAAC,mFAAmF,CAAC,CAAC;AAMjG,MAAM,eAAe,GAAG,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAoB3F,SAAS,cAAc,CAAC,QAAiB;IACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAkB,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAClD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,OAAO,CAAC,IAAI,CACV,wEAAwE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjI,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAMD,MAAM,kBAAkB,GAAoB;IAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;CAC5E,CAAC;AAQW,QAAA,UAAU,GAAoB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE;IACvE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC,CAAC,CAAC,kBAAkB,CAAC;AAYvB,SAAgB,mBAAmB,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;IAClF,IAAI,kBAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEtD,OAAO,kBAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAE9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AASD,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9E,CAAC;AAUD,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,IAAI,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IAClC,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,kBAAkB,GAAe,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAY9F,SAAgB,gBAAgB,CAAC,UAAmB;IAClD,MAAM,IAAI,GAAG,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAI7C,IACE,IAAI,KAAK,QAAQ;QACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC1B,IAAI,KAAK,QAAQ;QACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAID,IACE,IAAI,KAAK,WAAW;QACpB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC7B,IAAI,KAAK,eAAe;QACxB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACjC,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAGD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC;AAC1D,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAChD,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC;AAC1C,QAAA,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AAC9C,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC;AAC5D,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC5C,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC;AAClD,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAChD,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC;AACxD,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AACvC,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAGhC,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1C,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACxC,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAI5C,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAKtC,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAIjD,SAAS,cAAc,CAAC,QAA4B,EAAE,QAAgB,EAAE,SAAS,GAAG,KAAK;IACvF,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,QAA4B,EAAE,QAAgB,EAAE,SAAS,GAAG,KAAK;IACrF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAAmB,CAAC,CAAC;AAC/C,CAAC;AAKY,QAAA,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;AAK5E,QAAA,yBAAyB,GAAG,YAAY,CACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,MAAM,CACP,CAAC;AAMW,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAGnF,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AAIpF,QAAA,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAG9E,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAM9E,QAAA,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAGzE,QAAA,uBAAuB,GAAG,YAAY,CACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAC1C,IAAI,CACL,CAAC;AAGW,QAAA,sBAAsB,GAAG,YAAY,CAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,KAAK,CACN,CAAC;AAGW,QAAA,wBAAwB,GAAG,YAAY,CAClD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,KAAK,CACN,CAAC;AAGW,QAAA,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;AAI5E,QAAA,oBAAoB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;AAInF,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,OAAO,CAAC;AAGrE,QAAA,sBAAsB,GAAG,cAAc,CAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,CAAC,EACD,IAAI,CACL,CAAC;AAEW,QAAA,uBAAuB,GAAG,YAAY,CACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAC1C,IAAI,CACL,CAAC;AACW,QAAA,sBAAsB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAQvF,QAAA,yBAAyB,GAAG,YAAY,CACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,EACL,IAAI,CACL,CAAC;AAIW,QAAA,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO,CAAC;AACtE,QAAA,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACnF,QAAA,0BAA0B,GAAG,cAAc,CACtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EACtC,GAAG,CACJ,CAAC;AAGW,QAAA,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM,CAAC;AAC/E,QAAA,4BAA4B,GAAG,YAAY,CACtD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,KAAK,CACN,CAAC;AACW,QAAA,+BAA+B,GAAG,cAAc,CAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,GAAG,CACJ,CAAC;AAOW,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AAKzD,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC;AAG9D,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,QAAA,4BAA4B,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AACxE,QAAA,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAGnE,SAAS,sBAAsB,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAEY,QAAA,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC3E,QAAA,cAAc,GAAG,GAAG,uBAAe,SAAS,CAAC;AAC7C,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAClD,QAAA,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAElF,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,IAAI,yBAAiB,EAAE,CAAC;QACtB,OAAO,yBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,kCAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,kCAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,yCAAyC,kCAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,IAAI,WAAW,GAAG,YAAY,CAAC;AActB,kCAAW;AAbpB,IAAI,cAAc,GAAG,SAAS,CAAC;AAaT,wCAAc;AAXpC,IAAI,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAGtE,CAAC;IACF,sBAAA,WAAW,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC;IAC9C,yBAAA,cAAc,GAAG,WAAW,CAAC,OAAO,IAAI,cAAc,CAAC;AACzD,CAAC;AAAC,MAAM,CAAC;AAET,CAAC;AASD,SAAgB,2BAA2B;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC;IAG9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE5D,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,6BAA6B;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC;IAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAIxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE3D,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,4BAA4B;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC;IAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAGxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE1D,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,cAAc,CAAC,QAAgB,EAAE,UAAkB;IACjE,MAAM,aAAa,GAAG,6BAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAQD,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,UAAoB;IACtE,MAAM,aAAa,GAAG,6BAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+MA,kDAmCC;AASD,gEAEC;AAiCD,4CA2BC;AAwND,sDAcC;AAwBD,kEAgBC;AAQD,sEA6BC;AAQD,oEA4BC;AAQD,wCAMC;AAQD,8CAMC;AA5qBD,2CAA6B;AAC7B,uCAAyB;AACzB,6BAAwB;AAIxB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;AAGvD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACxC,QAAA,uBAAuB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;AAC9D,QAAA,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9C,QAAA,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,CAAC;AAQrE,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC;AAE9D,QAAA,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB;IAC5E,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IACnD,CAAC,CAAC,SAAS,CAAC;AAQd,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAuB,CAAC;IAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YAEtB,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEhE,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEY,QAAA,qBAAqB,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAO3F,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,MAAM,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAEY,QAAA,UAAU,GAAc,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAS5E,MAAM,mBAAmB,GAAG,OAAC;KAC1B,MAAM,CAAC;IACN,MAAM,EAAE,OAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qGAAqG,CACtG;IACH,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,iGAAiG,CAClG;CACJ,CAAC;KACD,QAAQ,CAAC,mFAAmF,CAAC,CAAC;AAMjG,MAAM,eAAe,GAAG,OAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAoB3F,SAAS,cAAc,CAAC,QAAiB;IACvC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAkB,EAAE,CAAC;YAEjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC5C,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBACxB,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAClD,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEf,OAAO,CAAC,IAAI,CACV,wEAAwE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjI,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAMD,MAAM,kBAAkB,GAAoB;IAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;CAC5E,CAAC;AAQW,QAAA,UAAU,GAAoB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE;IACvE,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACxC,CAAC,CAAC,kBAAkB,CAAC;AAYvB,SAAgB,mBAAmB,CAAC,MAAc,EAAE,IAAY,EAAE,SAAkB;IAClF,IAAI,kBAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEtD,OAAO,kBAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAE9B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACvB,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAGD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AASD,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9E,CAAC;AAUD,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,IAAI,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;IAClC,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,kBAAkB,GAAe,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAY9F,SAAgB,gBAAgB,CAAC,UAAmB;IAClD,MAAM,IAAI,GAAG,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAI7C,IACE,IAAI,KAAK,QAAQ;QACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAC1B,IAAI,KAAK,QAAQ;QACjB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAID,IACE,IAAI,KAAK,WAAW;QACpB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC7B,IAAI,KAAK,eAAe;QACxB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EACjC,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAGD,OAAO,MAAM,CAAC;AAChB,CAAC;AAEY,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,CAAC;AAC1D,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAChD,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC;AAC1C,QAAA,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,OAAO,CAAC;AAC9C,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC;AACtD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC;AAC5D,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,OAAO,CAAC;AACpD,QAAA,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC5C,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC;AAClD,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC;AAChD,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO,CAAC;AACxD,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;AACvC,QAAA,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AAGhC,QAAA,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAC1C,QAAA,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACxC,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,QAAA,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AAI5C,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAKtC,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAIjD,SAAS,cAAc,CAAC,QAA4B,EAAE,QAAgB,EAAE,SAAS,GAAG,KAAK;IACvF,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CAAC,QAA4B,EAAE,QAAgB,EAAE,SAAS,GAAG,KAAK;IACrF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,2BAAmB,CAAC,CAAC;AAC/C,CAAC;AAKY,QAAA,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;AAK5E,QAAA,yBAAyB,GAAG,YAAY,CACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,MAAM,CACP,CAAC;AAMW,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAGnF,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;AAIpF,QAAA,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAG9E,QAAA,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;AAM9E,QAAA,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAGzE,QAAA,uBAAuB,GAAG,YAAY,CACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAC1C,IAAI,CACL,CAAC;AAGW,QAAA,sBAAsB,GAAG,YAAY,CAChD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,KAAK,CACN,CAAC;AAGW,QAAA,wBAAwB,GAAG,YAAY,CAClD,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,KAAK,CACN,CAAC;AAGW,QAAA,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;AAM5E,QAAA,yBAAyB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AAIvF,QAAA,sBAAsB,GAAG,YAAY,CAChD,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAClC,EAAE,GAAG,EAAE,GAAG,IAAI,CACf,CAAC;AAIW,QAAA,oBAAoB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;AAInF,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,OAAO,CAAC;AAGrE,QAAA,sBAAsB,GAAG,cAAc,CAClD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,CAAC,EACD,IAAI,CACL,CAAC;AAEW,QAAA,uBAAuB,GAAG,YAAY,CACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAC1C,IAAI,CACL,CAAC;AACW,QAAA,sBAAsB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;AAQvF,QAAA,yBAAyB,GAAG,YAAY,CACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,EACL,IAAI,CACL,CAAC;AAIW,QAAA,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO,CAAC;AACtE,QAAA,uBAAuB,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACnF,QAAA,0BAA0B,GAAG,cAAc,CACtD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EACtC,GAAG,CACJ,CAAC;AAGW,QAAA,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,MAAM,CAAC;AAC/E,QAAA,4BAA4B,GAAG,YAAY,CACtD,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,KAAK,CACN,CAAC;AACW,QAAA,+BAA+B,GAAG,cAAc,CAC3D,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,GAAG,CACJ,CAAC;AAOW,QAAA,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AAKzD,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC;AAG9D,QAAA,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,QAAA,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,QAAA,4BAA4B,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AACxE,QAAA,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAGnE,SAAS,sBAAsB,CAAC,GAAY;IAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAEY,QAAA,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;AAC3E,QAAA,cAAc,GAAG,GAAG,uBAAe,SAAS,CAAC;AAC7C,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAClD,QAAA,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;AAElF,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,IAAI,yBAAiB,EAAE,CAAC;QACtB,OAAO,yBAAiB,CAAC;IAC3B,CAAC;IAED,IAAI,kCAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,kCAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,yCAAyC,kCAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,IAAI,WAAW,GAAG,YAAY,CAAC;AActB,kCAAW;AAbpB,IAAI,cAAc,GAAG,SAAS,CAAC;AAaT,wCAAc;AAXpC,IAAI,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAGtE,CAAC;IACF,sBAAA,WAAW,GAAG,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC;IAC9C,yBAAA,cAAc,GAAG,WAAW,CAAC,OAAO,IAAI,cAAc,CAAC;AACzD,CAAC;AAAC,MAAM,CAAC;AAET,CAAC;AASD,SAAgB,2BAA2B;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,cAAc,CAAC;IAG9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAE5D,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,6BAA6B;IAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC;IAEhC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAIxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE3D,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,4BAA4B;IAC1C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC;IAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YAGpC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAGxD,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,mBAAmB,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;YAE1D,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YAED,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,cAAc,CAAC,QAAgB,EAAE,UAAkB;IACjE,MAAM,aAAa,GAAG,6BAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAQD,SAAgB,iBAAiB,CAAC,QAAgB,EAAE,UAAoB;IACtE,MAAM,aAAa,GAAG,6BAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC"}
@@ -118,10 +118,11 @@ function getAuthMode() {
118
118
  function getToolCounts() {
119
119
  try {
120
120
  const registry = registry_manager_js_1.RegistryManager.getInstance();
121
- const tools = registry.getAllToolDefinitions();
121
+ const catalogTools = registry.getToolCatalog();
122
+ const discoveryTools = registry.getAllToolDefinitions();
122
123
  return {
123
- enabled: tools.length,
124
- total: tools.length,
124
+ enabled: discoveryTools.length,
125
+ total: catalogTools.length,
125
126
  };
126
127
  }
127
128
  catch {
@@ -156,7 +157,8 @@ function collectMetrics() {
156
157
  const configSource = instanceRegistry.getConfigSource();
157
158
  const toolCounts = getToolCounts();
158
159
  const uptimeSeconds = Math.floor((Date.now() - serverStartTime) / 1000);
159
- const sessionsByInstance = {};
160
+ const sessionsByInstanceMap = sessionManager.getSessionsByInstance();
161
+ const sessionsByInstance = Object.fromEntries(sessionsByInstanceMap);
160
162
  return {
161
163
  server: {
162
164
  version: config_js_1.packageVersion,
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/dashboard/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/dashboard/metrics.ts"],"names":[],"mappings":"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"}
@@ -116,6 +116,117 @@ function toStructuredError(error, toolName, toolArgs) {
116
116
  return null;
117
117
  return (0, error_handler_1.handleGitLabError)({ status: parsed.status, message: parsed.message }, toolName, action, toolArgs);
118
118
  }
119
+ function checkUnreachableInstance(toolName, toolArguments, effectiveInstanceUrl, healthMonitor) {
120
+ if (healthMonitor.isInstanceReachable(effectiveInstanceUrl) || toolName === 'manage_context') {
121
+ return null;
122
+ }
123
+ const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : 'unknown';
124
+ const rawState = healthMonitor.getState(effectiveInstanceUrl);
125
+ let connectionState;
126
+ if (rawState === 'failed') {
127
+ connectionState = 'failed';
128
+ }
129
+ else if (rawState === 'connecting') {
130
+ connectionState = 'connecting';
131
+ }
132
+ else {
133
+ connectionState = 'disconnected';
134
+ }
135
+ const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, connectionState);
136
+ recordEarlyReturnError(toolName, action, connError.message);
137
+ return { content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }], isError: true };
138
+ }
139
+ async function tryManageContextFastPath(toolName, toolArguments, effectiveInstanceUrl, healthMonitor) {
140
+ if (toolName !== 'manage_context' || healthMonitor.isInstanceReachable(effectiveInstanceUrl)) {
141
+ return null;
142
+ }
143
+ if (config_1.LOG_FORMAT === 'condensed') {
144
+ const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : undefined;
145
+ const requestTracker = (0, index_1.getRequestTracker)();
146
+ requestTracker.setToolForCurrentRequest(toolName, action);
147
+ }
148
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
149
+ const registryManager = RegistryManager.getInstance();
150
+ if (registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
151
+ const result = await registryManager.executeTool(toolName, toolArguments, effectiveInstanceUrl);
152
+ if (result === undefined) {
153
+ return null;
154
+ }
155
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
156
+ }
157
+ return null;
158
+ }
159
+ async function ensureBootstrapped(ctx) {
160
+ const { toolName, toolArguments, effectiveInstanceUrl, oauthMode, connectionManager, healthMonitor, isTimedOut, bootstrapState, } = ctx;
161
+ bootstrapState.started = true;
162
+ try {
163
+ if (!connectionManager.isConnected(effectiveInstanceUrl)) {
164
+ if (config_1.LOG_FORMAT === 'verbose') {
165
+ (0, logger_1.logInfo)('Connection not initialized, attempting to initialize...');
166
+ }
167
+ await connectionManager.initialize(effectiveInstanceUrl);
168
+ }
169
+ connectionManager.getClient(effectiveInstanceUrl);
170
+ if (oauthMode) {
171
+ await connectionManager.ensureIntrospected(effectiveInstanceUrl);
172
+ }
173
+ bootstrapState.complete = true;
174
+ try {
175
+ const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
176
+ RegistryManager.getInstance().refreshCache(effectiveInstanceUrl);
177
+ }
178
+ catch (cacheError) {
179
+ (0, logger_1.logWarn)('Failed to refresh registry cache after bootstrap', {
180
+ instanceUrl: effectiveInstanceUrl,
181
+ err: cacheError,
182
+ });
183
+ }
184
+ if (config_1.LOG_FORMAT === 'verbose') {
185
+ try {
186
+ const instanceInfo = connectionManager.getInstanceInfo(effectiveInstanceUrl);
187
+ (0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
188
+ }
189
+ catch {
190
+ (0, logger_1.logDebug)('Connection verified but instance info not yet available', {
191
+ instanceUrl: effectiveInstanceUrl,
192
+ });
193
+ }
194
+ }
195
+ return undefined;
196
+ }
197
+ catch (initError) {
198
+ const errorCategory = initError instanceof Error ? (0, error_handler_1.classifyError)(initError) : 'permanent';
199
+ if (initError instanceof Error) {
200
+ if (!isTimedOut() || errorCategory === 'auth' || errorCategory === 'permanent') {
201
+ healthMonitor.reportError(effectiveInstanceUrl, initError);
202
+ }
203
+ }
204
+ (0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`, {
205
+ instanceUrl: effectiveInstanceUrl,
206
+ err: initError instanceof Error ? initError : new Error(String(initError)),
207
+ });
208
+ const action = toolArguments && typeof toolArguments.action === 'string' ? toolArguments.action : 'unknown';
209
+ const monitorState = healthMonitor.getState(effectiveInstanceUrl);
210
+ let derivedState;
211
+ if (monitorState === 'connecting' || monitorState === 'failed') {
212
+ derivedState = monitorState;
213
+ }
214
+ else if (errorCategory === 'auth' || errorCategory === 'permanent') {
215
+ derivedState = 'failed';
216
+ }
217
+ else {
218
+ derivedState = 'disconnected';
219
+ }
220
+ const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, derivedState);
221
+ if (!isTimedOut()) {
222
+ recordEarlyReturnError(toolName, action, connError.message);
223
+ }
224
+ return {
225
+ content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
226
+ isError: true,
227
+ };
228
+ }
229
+ }
119
230
  let healthMonitorStartup = null;
120
231
  let stateChangeRegistered = false;
121
232
  function resetHandlersState() {
@@ -134,7 +245,7 @@ async function setupHandlers(server) {
134
245
  const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
135
246
  RegistryManager.getInstance().refreshCache(instanceUrl);
136
247
  const { getSessionManager } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
137
- await getSessionManager().broadcastToolsListChanged();
248
+ await getSessionManager().broadcastToolsListChanged(instanceUrl);
138
249
  (0, logger_1.logInfo)('Tool list updated after connection state change', {
139
250
  instanceUrl,
140
251
  from,
@@ -175,11 +286,17 @@ async function setupHandlers(server) {
175
286
  else {
176
287
  (0, logger_1.logInfo)('Skipping connection initialization - no authentication configured');
177
288
  }
178
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
289
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async (_request, extra) => {
179
290
  (0, logger_1.logInfo)('ListToolsRequest received');
291
+ const { getSessionManager: getSessionMgr } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
292
+ const sessionMgr = getSessionMgr();
293
+ const listToolsSessionId = extra?.sessionId;
294
+ const sessionInstanceUrl = listToolsSessionId !== undefined
295
+ ? sessionMgr.getSessionInstanceUrl(listToolsSessionId)
296
+ : undefined;
180
297
  const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
181
298
  const registryManager = RegistryManager.getInstance();
182
- const tools = registryManager.getAllToolDefinitions();
299
+ const tools = registryManager.getAllToolDefinitions(sessionInstanceUrl);
183
300
  (0, logger_1.logInfo)('Returning tools list', { toolCount: tools.length });
184
301
  function resolveRefs(schema, rootSchema) {
185
302
  if (!schema || typeof schema !== 'object')
@@ -241,15 +358,21 @@ async function setupHandlers(server) {
241
358
  tools: modifiedTools,
242
359
  };
243
360
  });
244
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
361
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request, extra) => {
245
362
  const { getGitLabApiUrlFromContext: getUrlFromCtx, isOAuthEnabled } = await Promise.resolve().then(() => __importStar(require('./oauth/index')));
246
- const rawInstanceUrl = isOAuthEnabled()
247
- ? (getUrlFromCtx() ?? config_1.GITLAB_BASE_URL)
363
+ const oauthEnabled = isOAuthEnabled();
364
+ const oauthContextUrl = oauthEnabled ? getUrlFromCtx() : undefined;
365
+ const rawInstanceUrl = oauthEnabled
366
+ ? (oauthContextUrl ?? config_1.GITLAB_BASE_URL)
248
367
  : (ConnectionManager_1.ConnectionManager.getInstance().getCurrentInstanceUrl() ?? config_1.GITLAB_BASE_URL);
249
368
  const requestInstanceUrl = (0, url_1.normalizeInstanceUrl)(rawInstanceUrl);
369
+ const callSessionId = extra?.sessionId;
370
+ if (callSessionId && (!oauthEnabled || oauthContextUrl !== undefined)) {
371
+ const { getSessionManager: getSessionMgrForCall } = await Promise.resolve().then(() => __importStar(require('./session-manager')));
372
+ getSessionMgrForCall().setSessionInstanceUrl(callSessionId, requestInstanceUrl);
373
+ }
250
374
  let timedOut = false;
251
- let bootstrapStarted = false;
252
- let bootstrapComplete = false;
375
+ const bootstrapState = { started: false, complete: false };
253
376
  const HANDLER_TIMEOUT_SYMBOL = Symbol('handler_timeout');
254
377
  let handlerTimeoutId;
255
378
  const timeoutPromise = new Promise((resolve) => {
@@ -276,111 +399,26 @@ async function setupHandlers(server) {
276
399
  const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
277
400
  const healthMonitor = HealthMonitor_1.HealthMonitor.getInstance();
278
401
  const toolName = request.params.name;
279
- if (!healthMonitor.isInstanceReachable(effectiveInstanceUrl) &&
280
- toolName !== 'manage_context') {
281
- const action = request.params.arguments && typeof request.params.arguments.action === 'string'
282
- ? request.params.arguments.action
283
- : 'unknown';
284
- const rawState = healthMonitor.getState(effectiveInstanceUrl);
285
- let connectionState;
286
- if (rawState === 'failed') {
287
- connectionState = 'failed';
288
- }
289
- else if (rawState === 'connecting') {
290
- connectionState = 'connecting';
291
- }
292
- else {
293
- connectionState = 'disconnected';
294
- }
295
- const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, connectionState);
296
- recordEarlyReturnError(toolName, action, connError.message);
297
- return {
298
- content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
299
- isError: true,
300
- };
301
- }
302
- if (toolName === 'manage_context' &&
303
- !healthMonitor.isInstanceReachable(effectiveInstanceUrl)) {
304
- if (config_1.LOG_FORMAT === 'condensed') {
305
- const action = request.params.arguments && typeof request.params.arguments.action === 'string'
306
- ? request.params.arguments.action
307
- : undefined;
308
- const requestTracker = (0, index_1.getRequestTracker)();
309
- requestTracker.setToolForCurrentRequest(toolName, action);
310
- }
311
- const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
312
- const registryManager = RegistryManager.getInstance();
313
- if (registryManager.hasToolHandler(toolName, effectiveInstanceUrl)) {
314
- const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
315
- return {
316
- content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
317
- };
318
- }
319
- }
320
- bootstrapStarted = true;
402
+ const toolArguments = request.params.arguments;
403
+ const unreachableResult = checkUnreachableInstance(toolName, toolArguments, effectiveInstanceUrl, healthMonitor);
404
+ if (unreachableResult)
405
+ return unreachableResult;
406
+ const fastPathResult = await tryManageContextFastPath(toolName, toolArguments, effectiveInstanceUrl, healthMonitor);
407
+ if (fastPathResult)
408
+ return fastPathResult;
321
409
  const oauthMode = isOAuthEnabled();
322
- try {
323
- if (!connectionManager.isConnected(effectiveInstanceUrl)) {
324
- if (config_1.LOG_FORMAT === 'verbose') {
325
- (0, logger_1.logInfo)('Connection not initialized, attempting to initialize...');
326
- }
327
- await connectionManager.initialize(effectiveInstanceUrl);
328
- }
329
- connectionManager.getClient(effectiveInstanceUrl);
330
- if (oauthMode) {
331
- await connectionManager.ensureIntrospected(effectiveInstanceUrl);
332
- }
333
- bootstrapComplete = true;
334
- {
335
- const { RegistryManager } = await Promise.resolve().then(() => __importStar(require('./registry-manager')));
336
- RegistryManager.getInstance().refreshCache(effectiveInstanceUrl);
337
- }
338
- if (config_1.LOG_FORMAT === 'verbose') {
339
- try {
340
- const instanceInfo = connectionManager.getInstanceInfo(effectiveInstanceUrl);
341
- (0, logger_1.logInfo)(`Connection verified: ${instanceInfo.version} ${instanceInfo.tier}`);
342
- }
343
- catch {
344
- (0, logger_1.logDebug)('Connection verified but instance info not yet available', {
345
- instanceUrl: effectiveInstanceUrl,
346
- });
347
- }
348
- }
349
- }
350
- catch (initError) {
351
- if (!bootstrapComplete) {
352
- const errorCategory = initError instanceof Error ? (0, error_handler_1.classifyError)(initError) : 'permanent';
353
- if (initError instanceof Error) {
354
- if (!timedOut || errorCategory === 'auth' || errorCategory === 'permanent') {
355
- healthMonitor.reportError(effectiveInstanceUrl, initError);
356
- }
357
- }
358
- (0, logger_1.logError)(`Connection initialization failed: ${initError instanceof Error ? initError.message : String(initError)}`, { instanceUrl: effectiveInstanceUrl });
359
- const action = request.params.arguments && typeof request.params.arguments.action === 'string'
360
- ? request.params.arguments.action
361
- : 'unknown';
362
- const monitorState = healthMonitor.getState(effectiveInstanceUrl);
363
- let derivedState;
364
- if (monitorState === 'connecting' || monitorState === 'failed') {
365
- derivedState = monitorState;
366
- }
367
- else if (errorCategory === 'auth' || errorCategory === 'permanent') {
368
- derivedState = 'failed';
369
- }
370
- else {
371
- derivedState = 'disconnected';
372
- }
373
- const connError = (0, error_handler_1.createConnectionFailedError)(toolName, action, effectiveInstanceUrl, derivedState);
374
- if (!timedOut) {
375
- recordEarlyReturnError(toolName, action, connError.message);
376
- }
377
- return {
378
- content: [{ type: 'text', text: JSON.stringify(connError, null, 2) }],
379
- isError: true,
380
- };
381
- }
382
- throw initError;
383
- }
410
+ const bootstrapFailure = await ensureBootstrapped({
411
+ toolName,
412
+ toolArguments,
413
+ effectiveInstanceUrl,
414
+ oauthMode,
415
+ connectionManager,
416
+ healthMonitor,
417
+ isTimedOut: () => timedOut,
418
+ bootstrapState,
419
+ });
420
+ if (bootstrapFailure)
421
+ return bootstrapFailure;
384
422
  const toolArgs = request.params.arguments;
385
423
  const action = toolArgs && typeof toolArgs.action === 'string' ? toolArgs.action : undefined;
386
424
  if (config_1.LOG_FORMAT === 'condensed') {
@@ -421,6 +459,9 @@ async function setupHandlers(server) {
421
459
  });
422
460
  }
423
461
  const result = await registryManager.executeTool(toolName, request.params.arguments, effectiveInstanceUrl);
462
+ if (result === undefined) {
463
+ throw new Error(`Tool '${toolName}' is not available or has been filtered out`);
464
+ }
424
465
  if (!timedOut) {
425
466
  healthMonitor.reportSuccess(effectiveInstanceUrl);
426
467
  }
@@ -454,7 +495,7 @@ async function setupHandlers(server) {
454
495
  const retryable = isIdempotentOperation(toolName);
455
496
  const timeoutError = (0, error_handler_1.createTimeoutError)(toolName, action, config_1.HANDLER_TIMEOUT_MS, retryable);
456
497
  (0, logger_1.logError)(`Handler timeout: tool '${toolName}' timed out after ${config_1.HANDLER_TIMEOUT_MS}ms`);
457
- if (bootstrapStarted && !bootstrapComplete) {
498
+ if (bootstrapState.started && !bootstrapState.complete) {
458
499
  HealthMonitor_1.HealthMonitor.getInstance().reportError(requestInstanceUrl, new Error(`Handler timed out after ${config_1.HANDLER_TIMEOUT_MS}ms — bootstrap did not complete`));
459
500
  ConnectionManager_1.ConnectionManager.getInstance().clearInflight(requestInstanceUrl);
460
501
  }