@structured-world/gitlab-mcp 7.1.0 → 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.1.0.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 |
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 |
@@ -157,7 +157,8 @@ function collectMetrics() {
157
157
  const configSource = instanceRegistry.getConfigSource();
158
158
  const toolCounts = getToolCounts();
159
159
  const uptimeSeconds = Math.floor((Date.now() - serverStartTime) / 1000);
160
- const sessionsByInstance = {};
160
+ const sessionsByInstanceMap = sessionManager.getSessionsByInstance();
161
+ const sessionsByInstance = Object.fromEntries(sessionsByInstanceMap);
161
162
  return {
162
163
  server: {
163
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/handlers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwYA,gDAGC;AAUD,sCAyiBC;AA77BD,iEAAmG;AACnG,oEAAiE;AACjE,4DAAyD;AACzD,qCAAmD;AACnD,qCAAgE;AAChE,yDAS+B;AAC/B,yCAAmD;AACnD,2CAA+F;AAC/F,qCAA2E;AAqB3E,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAA6B,CAAC,MAAM,KAAK,QAAQ,CAC1D,CAAC;AACJ,CAAC;AAKD,SAAS,sBAAsB,CAAC,KAAc;IAC5C,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAGD,MAAM,KAAK,GAAI,KAAqC,CAAC,KAAK,CAAC;IAC3D,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAID,SAAS,sBAAsB,CAC7B,QAAgB,EAChB,MAA0B,EAC1B,YAAoB;IAEpB,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;IAC3C,IAAI,mBAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,cAAc,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1D,cAAc,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAC/C,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;YACrB,IAAA,4BAAoB,GAAE,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAS,qBAAqB,CAAC,QAAgB;IAI7C,OAAO,CACL,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAC9B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC;QAChC,QAAQ,KAAK,gBAAgB,CAC9B,CAAC;AACJ,CAAC;AAMD,SAAS,iBAAiB,CACxB,KAAc,EACd,QAAgB,EAChB,QAAkC;IAGlC,IAAI,IAAA,qCAAqB,EAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,eAAe,CAAC;IAC/B,CAAC;IAGD,MAAM,KAAK,GAAI,KAAqC,CAAC,KAAK,CAAC;IAC3D,IAAI,IAAA,qCAAqB,EAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC,eAAe,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAG3C,IAAI,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,MAAM,KAAK,SAAS,CAAC;IAOrB,IACE,KAAK,YAAY,0BAAkB;QACnC,CAAC,KAAK,YAAY,KAAK;YACrB,KAAK,CAAC,IAAI,KAAK,oBAAoB;YACnC,WAAW,IAAI,KAAK;YACpB,OAAQ,KAA4B,CAAC,SAAS,KAAK,QAAQ,CAAC,EAC9D,CAAC;QACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAClD,OAAO,IAAA,kCAAkB,EAAC,QAAQ,EAAE,MAAM,EAAG,KAA4B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAA,iCAAiB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,IAAA,kCAAkB,EAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAGD,MAAM,MAAM,GAAG,IAAA,mCAAmB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,OAAO,IAAA,iCAAiB,EACtB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAClD,QAAQ,EACR,MAAM,EACN,QAAQ,CACT,CAAC;AACJ,CAAC;AA2BD,SAAS,wBAAwB,CAC/B,QAAgB,EAChB,aAAkD,EAClD,oBAA4B,EAC5B,aAA4B;IAE5B,IAAI,aAAa,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GACV,aAAa,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC9D,IAAI,eAAyD,CAAC;IAC9D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,eAAe,GAAG,QAAQ,CAAC;IAC7B,CAAC;SAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,eAAe,GAAG,YAAY,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,cAAc,CAAC;IACnC,CAAC;IACD,MAAM,SAAS,GAAG,IAAA,2CAA2B,EAC3C,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,eAAe,CAChB,CAAC;IACF,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClG,CAAC;AAWD,KAAK,UAAU,wBAAwB,CACrC,QAAgB,EAChB,aAAkD,EAClD,oBAA4B,EAC5B,aAA4B;IAE5B,IAAI,QAAQ,KAAK,gBAAgB,IAAI,aAAa,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,mBAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,MAAM,GACV,aAAa,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/F,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;QAC3C,cAAc,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IAKtD,IAAI,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,oBAAoB,CAAC,CAAC;QAGhG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAaD,KAAK,UAAU,kBAAkB,CAC/B,GAAqB;IAErB,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,cAAc,GACf,GAAG,GAAG,CAAC;IACR,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACzD,IAAI,mBAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAA,gBAAO,EAAC,yDAAyD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,iBAAiB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QACD,iBAAiB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,iBAAiB,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;QACnE,CAAC;QAID,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;QAO/B,IAAI,CAAC;YACH,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;YAC/D,eAAe,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,IAAA,gBAAO,EAAC,kDAAkD,EAAE;gBAC1D,WAAW,EAAE,oBAAoB;gBACjC,GAAG,EAAE,UAAmB;aACzB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,mBAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAC7E,IAAA,gBAAO,EAAC,wBAAwB,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,MAAM,CAAC;gBACP,IAAA,iBAAQ,EAAC,yDAAyD,EAAE;oBAClE,WAAW,EAAE,oBAAoB;iBAClC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,SAAS,EAAE,CAAC;QAInB,MAAM,aAAa,GAAG,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAI1F,IAAI,SAAS,YAAY,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,UAAU,EAAE,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;gBAC/E,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,IAAA,iBAAQ,EACN,qCAAqC,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EACzG;YACE,WAAW,EAAE,oBAAoB;YACjC,GAAG,EAAE,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC3E,CACF,CAAC;QACF,MAAM,MAAM,GACV,aAAa,IAAI,OAAO,aAAa,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAK/F,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAIlE,IAAI,YAAsD,CAAC;QAC3D,IAAI,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC/D,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;aAAM,IAAI,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;YACrE,YAAY,GAAG,QAAQ,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,YAAY,GAAG,cAAc,CAAC;QAChC,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,2CAA2B,EAC3C,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,YAAY,CACb,CAAC;QACF,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;YAClB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACrE,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAID,IAAI,oBAAoB,GAAyB,IAAI,CAAC;AAEtD,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAGlC,SAAgB,kBAAkB;IAChC,oBAAoB,GAAG,IAAI,CAAC;IAC5B,qBAAqB,GAAG,KAAK,CAAC;AAChC,CAAC;AAUM,KAAK,UAAU,aAAa,CAAC,MAAc;IAEhD,MAAM,EAAE,0BAA0B,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;IAErE,IAAI,0BAA0B,EAAE,EAAE,CAAC;QAIjC,oBAAoB,KAAK,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,6BAAa,CAAC,WAAW,EAAE,CAAC;gBAIlD,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,qBAAqB,GAAG,IAAI,CAAC;oBAC7B,MAAM,uCAAuC,GAAG,KAAK,EACnD,WAAmB,EACnB,IAAY,EACZ,EAAU,EACK,EAAE;wBACjB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;wBAC/D,eAAe,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBAExD,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;wBAGhE,MAAM,iBAAiB,EAAE,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;wBAEjE,IAAA,gBAAO,EAAC,iDAAiD,EAAE;4BACzD,WAAW;4BACX,IAAI;4BACJ,EAAE;yBACH,CAAC,CAAC;oBACL,CAAC,CAAC;oBAEF,aAAa,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;wBAIpD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;4BAChB,uCAAuC,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAClE,CAAC,KAAc,EAAE,EAAE;gCACjB,IAAA,gBAAO,EAAC,2DAA2D,EAAE;oCACnE,WAAW;oCACX,GAAG,EAAE,KAAc;iCACpB,CAAC,CAAC;4BACL,CAAC,CACF,CAAC;wBACJ,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;gBAKD,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;gBACvC,IAAA,gBAAO,EAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;gBAK5D,IAAI,CAAC;oBACH,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;oBAC/D,eAAe,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;gBAC/C,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAA,gBAAO,EAAC,uDAAuD,EAAE;wBAC/D,GAAG,EAAE,UAAmB;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAEf,oBAAoB,GAAG,IAAI,CAAC;gBAC5B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,oBAAoB,CAAC;IAC7B,CAAC;SAAM,CAAC;QAEN,IAAA,gBAAO,EAAC,mEAAmE,CAAC,CAAC;IAC/E,CAAC;IAMD,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QACzE,IAAA,gBAAO,EAAC,2BAA2B,CAAC,CAAC;QAIrC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,KAAK,EAAE,SAAS,CAAC;QAa5C,MAAM,kBAAkB,GACtB,kBAAkB,KAAK,SAAS;YAC9B,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,kBAAkB,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;QAGhB,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;QAC/D,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAExE,IAAA,gBAAO,EAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAG7D,SAAS,WAAW,CAClB,MAAiD,EACjD,UAAuB;YAEvB,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC;YAGzD,UAAU,KAAK,MAAoB,CAAC;YAGpC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAuB,CAAC,CAAC;YACnF,CAAC;YAGD,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;gBAE5D,IAAI,kBAAkB,EAAE,CAAC;oBAEvB,MAAM,WAAW,GAAG,WAAW,CAAC,kBAAkB,EAAE,UAAU,CAAuB,CAAC;oBAEtF,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;oBACvC,OAAO,gBAAgB,CAAC,IAAI,CAAC;oBAC7B,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAAC;gBACjD,CAAC;gBAED,MAAM,gBAAgB,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;gBACvC,OAAO,gBAAgB,CAAC,IAAI,CAAC;gBAC7B,OAAO,gBAAgB,CAAC;YAC1B,CAAC;YAGD,MAAM,MAAM,GAAuB,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,GAAG,KAAK,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAExE,MAAM,kBAAkB,GAAuC,EAAE,CAAC;oBAClE,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAC/C,KAA2C,CAC5C,EAAE,CAAC;wBACF,kBAAkB,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,CAAuB,CAAC;oBACzF,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC;gBACnC,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChF,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,KAA2B,EAAE,UAAU,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAGnC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACnD,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACnD,CAAC;YAGD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;gBAE1C,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzE,WAAW,GAAG,QAAQ,CAAC;gBACzB,CAAC;YACH,CAAC;YAGD,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;gBAC/E,MAAM,aAAa,GAAG,EAAE,GAAG,WAAW,EAA6B,CAAC;gBACpE,OAAO,aAAa,CAAC,OAAO,CAAC;gBAC7B,WAAW,GAAG,aAAa,CAAC;YAC9B,CAAC;YAED,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,aAAa;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAMH,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAIvE,MAAM,EAAE,0BAA0B,EAAE,aAAa,EAAE,cAAc,EAAE,GACjE,wDAAa,eAAe,GAAC,CAAC;QAUhC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;QAGtC,MAAM,eAAe,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACnE,MAAM,cAAc,GAAG,YAAY;YACjC,CAAC,CAAC,CAAC,eAAe,IAAI,wBAAe,CAAC;YACtC,CAAC,CAAC,CAAC,qCAAiB,CAAC,WAAW,EAAE,CAAC,qBAAqB,EAAE,IAAI,wBAAe,CAAC,CAAC;QAEjF,MAAM,kBAAkB,GAAG,IAAA,0BAAoB,EAAC,cAAc,CAAC,CAAC;QAchE,MAAM,aAAa,GAAG,KAAK,EAAE,SAAS,CAAC;QACvC,IAAI,aAAa,IAAI,CAAC,CAAC,YAAY,IAAI,eAAe,KAAK,SAAS,CAAC,EAAE,CAAC;YACtE,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,wDAAa,mBAAmB,GAAC,CAAC;YACtF,oBAAoB,EAAE,CAAC,qBAAqB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;QAClF,CAAC;QAID,IAAI,QAAQ,GAAG,KAAK,CAAC;QAKrB,MAAM,cAAc,GAAmB,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAG3E,MAAM,sBAAsB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACzD,IAAI,gBAA2D,CAAC;QAChE,MAAM,cAAc,GAAG,IAAI,OAAO,CAAgC,CAAC,OAAO,EAAE,EAAE;YAC5E,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAClC,CAAC,EAAE,2BAAkB,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAGH,MAAM,WAAW,GAAG,KAAK,IAGtB,EAAE;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC;YAID,IAAI,mBAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAA,gBAAO,EAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAGD,MAAM,EAAE,cAAc,EAAE,0BAA0B,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;YAErF,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC;gBAElC,MAAM,IAAI,KAAK,CACb,kEAAkE;oBAChE,8EAA8E;oBAC9E,gCAAgC;oBAChC,qEAAqE,CACxE,CAAC;YACJ,CAAC;YAID,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;YAChD,MAAM,iBAAiB,GAAG,qCAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,6BAAa,CAAC,WAAW,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACrC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAI/C,MAAM,iBAAiB,GAAG,wBAAwB,CAChD,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,aAAa,CACd,CAAC;YACF,IAAI,iBAAiB;gBAAE,OAAO,iBAAiB,CAAC;YAGhD,MAAM,cAAc,GAAG,MAAM,wBAAwB,CACnD,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,aAAa,CACd,CAAC;YACF,IAAI,cAAc;gBAAE,OAAO,cAAc,CAAC;YAG1C,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;YACnC,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;gBAChD,QAAQ;gBACR,aAAa;gBACb,oBAAoB;gBACpB,SAAS;gBACT,iBAAiB;gBACjB,aAAa;gBACb,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ;gBAC1B,cAAc;aACf,CAAC,CAAC;YACH,IAAI,gBAAgB;gBAAE,OAAO,gBAAgB,CAAC;YAG9C,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1C,MAAM,MAAM,GAAG,QAAQ,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAG7F,IAAI,mBAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;gBAC3C,cAAc,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAG1D,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,oCAAoC,GAAC,CAAC;gBACjF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC;gBACnD,IAAI,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;oBAC/B,cAAc,CAAC,2BAA2B,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxE,CAAC;gBACD,cAAc,CAAC,4BAA4B,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;gBAGrE,MAAM,gBAAgB,GAAG,IAAA,2BAAmB,GAAE,CAAC;gBAC/C,IAAI,gBAAgB,EAAE,CAAC;oBAErB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBACxD,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;wBACrB,MAAM,iBAAiB,GAAG,IAAA,4BAAoB,GAAE,CAAC;wBACjD,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBAEH,MAAM,EAAE,eAAe,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;gBAC/D,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;gBAQtD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;oBACpE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,6CAA6C,CAAC,CAAC;gBAClF,CAAC;gBAED,IAAI,mBAAU,KAAK,SAAS,EAAE,CAAC;oBAC7B,IAAA,gBAAO,EAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;gBACzC,CAAC;gBAGD,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,wDAAa,eAAe,GAAC,CAAC;gBAC1E,IAAI,cAAc,EAAE,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;oBAClC,IAAA,iBAAQ,EAAC,2CAA2C,EAAE;wBACpD,UAAU,EAAE,CAAC,CAAC,OAAO;wBACrB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,WAAW;wBAChC,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;gBAGD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,WAAW,CAC9C,QAAQ,EACR,OAAO,CAAC,MAAM,CAAC,SAAS,EACxB,oBAAoB,CACrB,CAAC;gBAOF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,6CAA6C,CAAC,CAAC;gBAClF,CAAC;gBAID,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;gBACpD,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAKf,IAAI,CAAC,QAAQ,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;oBACxC,MAAM,QAAQ,GAAG,IAAA,6BAAa,EAAC,KAAK,CAAC,CAAC;oBACtC,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBACpD,aAAa,CAAC,WAAW,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5E,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,MAAM,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YAMH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;YAEnE,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;gBAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBACrC,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ;oBAC7E,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;oBACjC,CAAC,CAAC,SAAS,CAAC;gBAChB,MAAM,SAAS,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAA,kCAAkB,EAAC,QAAQ,EAAE,MAAM,EAAE,2BAAkB,EAAE,SAAS,CAAC,CAAC;gBAEzF,IAAA,iBAAQ,EAAC,0BAA0B,QAAQ,qBAAqB,2BAAkB,IAAI,CAAC,CAAC;gBAKxF,IAAI,cAAc,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;oBAKvD,6BAAa,CAAC,WAAW,EAAE,CAAC,WAAW,CACrC,kBAAkB,EAClB,IAAI,KAAK,CACP,2BAA2B,2BAAkB,iCAAiC,CAC/E,CACF,CAAC;oBACF,qCAAiB,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;gBACpE,CAAC;gBAED,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAE/D,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC5C;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtE,IAAA,iBAAQ,EAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;YAG7C,MAAM,UAAU,GAAG,IAAA,yBAAiB,GAAE,CAAC;YACvC,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAG7C,MAAM,YAAY,GAAG,IAAA,2BAAmB,GAAE,CAAC;YAC3C,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,KAAK,EAAE,SAAS,EAAE,CAAC;oBACrB,MAAM,WAAW,GAAG,IAAA,4BAAoB,GAAE,CAAC;oBAC3C,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAGD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1C,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAErE,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAA,iBAAQ,EAAC,qCAAqC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC/C;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAGD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;qBACvD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,gBAAgB,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -10,6 +10,7 @@ const error_handler_1 = require("../utils/error-handler");
10
10
  const fetch_1 = require("../utils/fetch");
11
11
  const logger_1 = require("../logger");
12
12
  const config_1 = require("../config");
13
+ const index_1 = require("../oauth/index");
13
14
  class InitializationTimeoutError extends Error {
14
15
  constructor(timeoutMs) {
15
16
  super(`Initialization timeout after ${timeoutMs}ms`);
@@ -47,6 +48,7 @@ const performConnect = (0, xstate_1.fromPromise)(async ({ input }) => {
47
48
  if (!healthy) {
48
49
  throw new Error(`Health check failed for ${input.instanceUrl}`);
49
50
  }
51
+ await authenticatedTokenCheck(input.instanceUrl, HEALTH_CHECK_PROBE_MS);
50
52
  return { degraded: isDegradedInstance(connectionManager, input.instanceUrl) };
51
53
  }
52
54
  const deadline = Date.now() + config_1.INIT_TIMEOUT_MS;
@@ -88,6 +90,7 @@ const performHealthCheck = (0, xstate_1.fromPromise)(async ({ input }) => {
88
90
  if (!healthy) {
89
91
  throw new Error(`Health check failed for ${input.instanceUrl}`);
90
92
  }
93
+ await authenticatedTokenCheck(input.instanceUrl, HEALTH_CHECK_PROBE_MS);
91
94
  const connectionManager = ConnectionManager_1.ConnectionManager.getInstance();
92
95
  return { degraded: isDegradedInstance(connectionManager, input.instanceUrl) };
93
96
  });
@@ -112,6 +115,57 @@ async function quickHealthCheck(instanceUrl, timeoutMs = HEALTH_CHECK_PROBE_MS)
112
115
  clearTimeout(timeoutId);
113
116
  }
114
117
  }
118
+ async function authenticatedTokenCheck(instanceUrl, timeoutMs) {
119
+ if ((0, index_1.isOAuthEnabled)())
120
+ return;
121
+ if (!config_1.GITLAB_TOKEN)
122
+ return;
123
+ const controller = new AbortController();
124
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
125
+ try {
126
+ const response = await (0, fetch_1.enhancedFetch)(`${instanceUrl}/api/v4/user`, {
127
+ method: 'HEAD',
128
+ signal: controller.signal,
129
+ retry: false,
130
+ rateLimit: false,
131
+ skipAuth: true,
132
+ headers: { 'PRIVATE-TOKEN': config_1.GITLAB_TOKEN },
133
+ });
134
+ if (response.status === 401 || response.status === 403) {
135
+ throw new Error(`GitLab API error: ${response.status} - token invalid or lacks required scope`);
136
+ }
137
+ if (!response.ok) {
138
+ throw new Error(`GitLab API error: ${response.status} - authenticated health probe failed`);
139
+ }
140
+ }
141
+ catch (error) {
142
+ if (error instanceof Error) {
143
+ const parsed = (0, error_handler_1.parseGitLabApiError)(error.message);
144
+ if (parsed?.status === 401 || parsed?.status === 403)
145
+ throw error;
146
+ if (error.name === 'AbortError' || (0, error_handler_1.classifyError)(error) === 'transient')
147
+ return;
148
+ }
149
+ (0, logger_1.logError)('Unexpected error during authenticated token health check', {
150
+ err: error instanceof Error ? error : new Error(String(error)),
151
+ });
152
+ throw error;
153
+ }
154
+ finally {
155
+ clearTimeout(timeoutId);
156
+ }
157
+ }
158
+ const healthCheckOnError = [
159
+ {
160
+ guard: 'healthCheckErrorIsAuth',
161
+ target: '#connection.failed',
162
+ actions: 'recordFailure',
163
+ },
164
+ {
165
+ target: 'idle',
166
+ actions: 'recordFailure',
167
+ },
168
+ ];
115
169
  const connectionMachine = (0, xstate_1.setup)({
116
170
  types: {
117
171
  context: {},
@@ -134,6 +188,13 @@ const connectionMachine = (0, xstate_1.setup)({
134
188
  const error = event.error;
135
189
  return (0, error_handler_1.classifyError)(error) === 'transient';
136
190
  },
191
+ healthCheckErrorIsAuth: ({ event }) => {
192
+ const error = event.error;
193
+ if (!(error instanceof Error))
194
+ return false;
195
+ const parsed = (0, error_handler_1.parseGitLabApiError)(error.message);
196
+ return parsed?.status === 401 || parsed?.status === 403;
197
+ },
137
198
  },
138
199
  actions: {
139
200
  recordSuccess: (0, xstate_1.assign)({
@@ -240,10 +301,7 @@ const connectionMachine = (0, xstate_1.setup)({
240
301
  actions: 'recordSuccess',
241
302
  },
242
303
  ],
243
- onError: {
244
- target: 'idle',
245
- actions: 'recordFailure',
246
- },
304
+ onError: healthCheckOnError,
247
305
  },
248
306
  },
249
307
  },
@@ -291,10 +349,7 @@ const connectionMachine = (0, xstate_1.setup)({
291
349
  actions: 'recordSuccess',
292
350
  },
293
351
  ],
294
- onError: {
295
- target: 'idle',
296
- actions: 'recordFailure',
297
- },
352
+ onError: healthCheckOnError,
298
353
  },
299
354
  },
300
355
  },