@google/gemini-cli-core 0.12.0-nightly.20251023.c4c0c0d1 → 0.12.0-nightly.20251027.cb0947c5
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/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/agents/subagent-tool-wrapper.test.js +2 -4
- package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
- package/dist/src/code_assist/oauth2.d.ts +2 -2
- package/dist/src/code_assist/oauth2.js +45 -32
- package/dist/src/code_assist/oauth2.js.map +1 -1
- package/dist/src/code_assist/oauth2.test.js +33 -1
- package/dist/src/code_assist/oauth2.test.js.map +1 -1
- package/dist/src/code_assist/server.d.ts +3 -3
- package/dist/src/code_assist/server.js.map +1 -1
- package/dist/src/code_assist/setup.d.ts +2 -2
- package/dist/src/code_assist/setup.js.map +1 -1
- package/dist/src/config/config.d.ts +4 -1
- package/dist/src/config/config.js +7 -4
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +0 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/client.d.ts +1 -11
- package/dist/src/core/client.js +17 -165
- package/dist/src/core/client.js.map +1 -1
- package/dist/src/core/client.test.js +70 -405
- package/dist/src/core/client.test.js.map +1 -1
- package/dist/src/core/contentGenerator.js +4 -0
- package/dist/src/core/contentGenerator.js.map +1 -1
- package/dist/src/core/contentGenerator.test.js +15 -0
- package/dist/src/core/contentGenerator.test.js.map +1 -1
- package/dist/src/core/coreToolScheduler.d.ts +7 -7
- package/dist/src/core/coreToolScheduler.js +211 -95
- package/dist/src/core/coreToolScheduler.js.map +1 -1
- package/dist/src/core/coreToolScheduler.test.js +239 -9
- package/dist/src/core/coreToolScheduler.test.js.map +1 -1
- package/dist/src/core/fakeContentGenerator.d.ts +26 -0
- package/dist/src/core/fakeContentGenerator.js +61 -0
- package/dist/src/core/fakeContentGenerator.js.map +1 -0
- package/dist/src/core/fakeContentGenerator.test.d.ts +6 -0
- package/dist/src/core/fakeContentGenerator.test.js +140 -0
- package/dist/src/core/fakeContentGenerator.test.js.map +1 -0
- package/dist/src/core/nonInteractiveToolExecutor.js +5 -4
- package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
- package/dist/src/core/prompts.test.js +30 -108
- package/dist/src/core/prompts.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.d.ts +4 -0
- package/dist/src/mcp/google-auth-provider.js +58 -7
- package/dist/src/mcp/google-auth-provider.js.map +1 -1
- package/dist/src/mcp/google-auth-provider.test.js +105 -11
- package/dist/src/mcp/google-auth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-provider.js +2 -2
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +130 -0
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.js +5 -4
- package/dist/src/mcp/oauth-token-storage.js.map +1 -1
- package/dist/src/mcp/oauth-token-storage.test.js +17 -11
- package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
- package/dist/src/mcp/oauth-utils.d.ts +7 -0
- package/dist/src/mcp/oauth-utils.js +19 -0
- package/dist/src/mcp/oauth-utils.js.map +1 -1
- package/dist/src/mcp/oauth-utils.test.js +32 -0
- package/dist/src/mcp/oauth-utils.test.js.map +1 -1
- package/dist/src/mcp/sa-impersonation-provider.d.ts +0 -6
- package/dist/src/mcp/sa-impersonation-provider.js +3 -21
- package/dist/src/mcp/sa-impersonation-provider.js.map +1 -1
- package/dist/src/mcp/token-storage/base-token-storage.test.js +75 -84
- package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.js +5 -4
- package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js +21 -3
- package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -1
- package/dist/src/services/chatCompressionService.d.ts +32 -0
- package/dist/src/services/chatCompressionService.js +164 -0
- package/dist/src/services/chatCompressionService.js.map +1 -0
- package/dist/src/services/chatCompressionService.test.d.ts +6 -0
- package/dist/src/services/chatCompressionService.test.js +211 -0
- package/dist/src/services/chatCompressionService.test.js.map +1 -0
- package/dist/src/services/fileDiscoveryService.d.ts +0 -8
- package/dist/src/services/fileDiscoveryService.js +5 -33
- package/dist/src/services/fileDiscoveryService.js.map +1 -1
- package/dist/src/services/fileDiscoveryService.test.js +11 -11
- package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
- package/dist/src/services/loopDetectionService.js +19 -9
- package/dist/src/services/loopDetectionService.js.map +1 -1
- package/dist/src/services/loopDetectionService.test.js +40 -11
- package/dist/src/services/loopDetectionService.test.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +35 -28
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
- package/dist/src/telemetry/metrics.test.js +2 -2
- package/dist/src/telemetry/metrics.test.js.map +1 -1
- package/dist/src/tools/edit.d.ts +3 -2
- package/dist/src/tools/edit.js +15 -11
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/edit.test.js +19 -0
- package/dist/src/tools/edit.test.js.map +1 -1
- package/dist/src/tools/glob.js +4 -2
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +2 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/ls.js +2 -1
- package/dist/src/tools/ls.js.map +1 -1
- package/dist/src/tools/ls.test.js +0 -7
- package/dist/src/tools/ls.test.js.map +1 -1
- package/dist/src/tools/mcp-tool.d.ts +2 -1
- package/dist/src/tools/mcp-tool.js +1 -1
- package/dist/src/tools/mcp-tool.js.map +1 -1
- package/dist/src/tools/memoryTool.d.ts +5 -3
- package/dist/src/tools/memoryTool.js +9 -7
- package/dist/src/tools/memoryTool.js.map +1 -1
- package/dist/src/tools/read-file.js +7 -3
- package/dist/src/tools/read-file.js.map +1 -1
- package/dist/src/tools/read-file.test.js +25 -2
- package/dist/src/tools/read-file.test.js.map +1 -1
- package/dist/src/tools/shell.d.ts +6 -4
- package/dist/src/tools/shell.js +18 -12
- package/dist/src/tools/shell.js.map +1 -1
- package/dist/src/tools/shell.test.js +7 -0
- package/dist/src/tools/shell.test.js.map +1 -1
- package/dist/src/tools/smart-edit.d.ts +2 -1
- package/dist/src/tools/smart-edit.js +10 -9
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/tool-registry.d.ts +2 -1
- package/dist/src/tools/tool-registry.js +1 -1
- package/dist/src/tools/tool-registry.js.map +1 -1
- package/dist/src/tools/tools.d.ts +7 -0
- package/dist/src/tools/tools.js +11 -16
- package/dist/src/tools/tools.js.map +1 -1
- package/dist/src/tools/web-fetch.js +1 -12
- package/dist/src/tools/web-fetch.js.map +1 -1
- package/dist/src/tools/web-fetch.test.js +2 -2
- package/dist/src/tools/web-fetch.test.js.map +1 -1
- package/dist/src/tools/write-file.d.ts +2 -1
- package/dist/src/tools/write-file.js +6 -6
- package/dist/src/tools/write-file.js.map +1 -1
- package/dist/src/tools/write-todos.d.ts +2 -1
- package/dist/src/tools/write-todos.js +1 -1
- package/dist/src/tools/write-todos.js.map +1 -1
- package/dist/src/utils/environmentContext.d.ts +2 -1
- package/dist/src/utils/environmentContext.js +18 -0
- package/dist/src/utils/environmentContext.js.map +1 -1
- package/dist/src/utils/errorParsing.d.ts +1 -1
- package/dist/src/utils/errorParsing.js +5 -33
- package/dist/src/utils/errorParsing.js.map +1 -1
- package/dist/src/utils/errorParsing.test.js +0 -88
- package/dist/src/utils/errorParsing.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +3 -0
- package/dist/src/utils/errors.js +6 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/flashFallback.test.js +26 -45
- package/dist/src/utils/flashFallback.test.js.map +1 -1
- package/dist/src/utils/getFolderStructure.js +7 -16
- package/dist/src/utils/getFolderStructure.js.map +1 -1
- package/dist/src/utils/googleErrors.d.ts +104 -0
- package/dist/src/utils/googleErrors.js +152 -0
- package/dist/src/utils/googleErrors.js.map +1 -0
- package/dist/src/utils/googleErrors.test.d.ts +6 -0
- package/dist/src/utils/googleErrors.test.js +301 -0
- package/dist/src/utils/googleErrors.test.js.map +1 -0
- package/dist/src/utils/googleQuotaErrors.d.ts +35 -0
- package/dist/src/utils/googleQuotaErrors.js +131 -0
- package/dist/src/utils/googleQuotaErrors.js.map +1 -0
- package/dist/src/utils/googleQuotaErrors.test.d.ts +6 -0
- package/dist/src/utils/googleQuotaErrors.test.js +281 -0
- package/dist/src/utils/googleQuotaErrors.test.js.map +1 -0
- package/dist/src/utils/ignorePatterns.test.js +26 -30
- package/dist/src/utils/ignorePatterns.test.js.map +1 -1
- package/dist/src/utils/paths.js +126 -26
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/paths.test.js +200 -68
- package/dist/src/utils/paths.test.js.map +1 -1
- package/dist/src/utils/quotaErrorDetection.d.ts +0 -2
- package/dist/src/utils/quotaErrorDetection.js +0 -46
- package/dist/src/utils/quotaErrorDetection.js.map +1 -1
- package/dist/src/utils/retry.js +41 -145
- package/dist/src/utils/retry.js.map +1 -1
- package/dist/src/utils/retry.test.js +31 -110
- package/dist/src/utils/retry.test.js.map +1 -1
- package/dist/src/utils/shell-utils.test.js +70 -0
- package/dist/src/utils/shell-utils.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/google-gemini-cli-core-0.12.0-nightly.20251022.0542de95.tgz +0 -0
|
@@ -145,6 +145,9 @@ ${truncatedContent}`,
|
|
|
145
145
|
}
|
|
146
146
|
}
|
|
147
147
|
export class CoreToolScheduler {
|
|
148
|
+
// Static WeakMap to track which MessageBus instances already have a handler subscribed
|
|
149
|
+
// This prevents duplicate subscriptions when multiple CoreToolScheduler instances are created
|
|
150
|
+
static subscribedMessageBuses = new WeakMap();
|
|
148
151
|
toolCalls = [];
|
|
149
152
|
outputUpdateHandler;
|
|
150
153
|
onAllToolCallsComplete;
|
|
@@ -154,7 +157,10 @@ export class CoreToolScheduler {
|
|
|
154
157
|
onEditorClose;
|
|
155
158
|
isFinalizingToolCalls = false;
|
|
156
159
|
isScheduling = false;
|
|
160
|
+
isCancelling = false;
|
|
157
161
|
requestQueue = [];
|
|
162
|
+
toolCallQueue = [];
|
|
163
|
+
completedToolCallsForBatch = [];
|
|
158
164
|
constructor(options) {
|
|
159
165
|
this.config = options.config;
|
|
160
166
|
this.outputUpdateHandler = options.outputUpdateHandler;
|
|
@@ -163,12 +169,31 @@ export class CoreToolScheduler {
|
|
|
163
169
|
this.getPreferredEditor = options.getPreferredEditor;
|
|
164
170
|
this.onEditorClose = options.onEditorClose;
|
|
165
171
|
// Subscribe to message bus for ASK_USER policy decisions
|
|
172
|
+
// Use a static WeakMap to ensure we only subscribe ONCE per MessageBus instance
|
|
173
|
+
// This prevents memory leaks when multiple CoreToolScheduler instances are created
|
|
174
|
+
// (e.g., on every React render, or for each non-interactive tool call)
|
|
166
175
|
if (this.config.getEnableMessageBusIntegration()) {
|
|
167
176
|
const messageBus = this.config.getMessageBus();
|
|
168
|
-
|
|
177
|
+
// Check if we've already subscribed a handler to this message bus
|
|
178
|
+
if (!CoreToolScheduler.subscribedMessageBuses.has(messageBus)) {
|
|
179
|
+
// Create a shared handler that will be used for this message bus
|
|
180
|
+
const sharedHandler = (request) => {
|
|
181
|
+
// When ASK_USER policy decision is made, respond with requiresUserConfirmation=true
|
|
182
|
+
// to tell tools to use their legacy confirmation flow
|
|
183
|
+
messageBus.publish({
|
|
184
|
+
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
185
|
+
correlationId: request.correlationId,
|
|
186
|
+
confirmed: false,
|
|
187
|
+
requiresUserConfirmation: true,
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
messageBus.subscribe(MessageBusType.TOOL_CONFIRMATION_REQUEST, sharedHandler);
|
|
191
|
+
// Store the handler in the WeakMap so we don't subscribe again
|
|
192
|
+
CoreToolScheduler.subscribedMessageBuses.set(messageBus, sharedHandler);
|
|
193
|
+
}
|
|
169
194
|
}
|
|
170
195
|
}
|
|
171
|
-
setStatusInternal(targetCallId, newStatus, auxiliaryData) {
|
|
196
|
+
setStatusInternal(targetCallId, newStatus, signal, auxiliaryData) {
|
|
172
197
|
this.toolCalls = this.toolCalls.map((currentCall) => {
|
|
173
198
|
if (currentCall.request.callId !== targetCallId ||
|
|
174
199
|
currentCall.status === 'success' ||
|
|
@@ -298,7 +323,6 @@ export class CoreToolScheduler {
|
|
|
298
323
|
}
|
|
299
324
|
});
|
|
300
325
|
this.notifyToolCallsUpdate();
|
|
301
|
-
this.checkAndNotifyCompletion();
|
|
302
326
|
}
|
|
303
327
|
setArgsInternal(targetCallId, args) {
|
|
304
328
|
this.toolCalls = this.toolCalls.map((call) => {
|
|
@@ -395,13 +419,36 @@ export class CoreToolScheduler {
|
|
|
395
419
|
}
|
|
396
420
|
return this._schedule(request, signal);
|
|
397
421
|
}
|
|
422
|
+
cancelAll(signal) {
|
|
423
|
+
if (this.isCancelling) {
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
this.isCancelling = true;
|
|
427
|
+
// Cancel the currently active tool call, if there is one.
|
|
428
|
+
if (this.toolCalls.length > 0) {
|
|
429
|
+
const activeCall = this.toolCalls[0];
|
|
430
|
+
// Only cancel if it's in a cancellable state.
|
|
431
|
+
if (activeCall.status === 'awaiting_approval' ||
|
|
432
|
+
activeCall.status === 'executing' ||
|
|
433
|
+
activeCall.status === 'scheduled' ||
|
|
434
|
+
activeCall.status === 'validating') {
|
|
435
|
+
this.setStatusInternal(activeCall.request.callId, 'cancelled', signal, 'User cancelled the operation.');
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
// Clear the queue and mark all queued items as cancelled for completion reporting.
|
|
439
|
+
this._cancelAllQueuedCalls();
|
|
440
|
+
// Finalize the batch immediately.
|
|
441
|
+
void this.checkAndNotifyCompletion(signal);
|
|
442
|
+
}
|
|
398
443
|
async _schedule(request, signal) {
|
|
399
444
|
this.isScheduling = true;
|
|
445
|
+
this.isCancelling = false;
|
|
400
446
|
try {
|
|
401
447
|
if (this.isRunning()) {
|
|
402
448
|
throw new Error('Cannot schedule new tool calls while other tool calls are actively running (executing or awaiting approval).');
|
|
403
449
|
}
|
|
404
450
|
const requestsToProcess = Array.isArray(request) ? request : [request];
|
|
451
|
+
this.completedToolCallsForBatch = [];
|
|
405
452
|
const newToolCalls = requestsToProcess.map((reqInfo) => {
|
|
406
453
|
const toolInstance = this.config
|
|
407
454
|
.getToolRegistry()
|
|
@@ -434,28 +481,55 @@ export class CoreToolScheduler {
|
|
|
434
481
|
startTime: Date.now(),
|
|
435
482
|
};
|
|
436
483
|
});
|
|
437
|
-
this.
|
|
438
|
-
this.
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
484
|
+
this.toolCallQueue.push(...newToolCalls);
|
|
485
|
+
await this._processNextInQueue(signal);
|
|
486
|
+
}
|
|
487
|
+
finally {
|
|
488
|
+
this.isScheduling = false;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
async _processNextInQueue(signal) {
|
|
492
|
+
// If there's already a tool being processed, or the queue is empty, stop.
|
|
493
|
+
if (this.toolCalls.length > 0 || this.toolCallQueue.length === 0) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
// If cancellation happened between steps, handle it.
|
|
497
|
+
if (signal.aborted) {
|
|
498
|
+
this._cancelAllQueuedCalls();
|
|
499
|
+
// Finalize the batch.
|
|
500
|
+
await this.checkAndNotifyCompletion(signal);
|
|
501
|
+
return;
|
|
502
|
+
}
|
|
503
|
+
const toolCall = this.toolCallQueue.shift();
|
|
504
|
+
// This is now the single active tool call.
|
|
505
|
+
this.toolCalls = [toolCall];
|
|
506
|
+
this.notifyToolCallsUpdate();
|
|
507
|
+
// Handle tools that were already errored during creation.
|
|
508
|
+
if (toolCall.status === 'error') {
|
|
509
|
+
// An error during validation means this "active" tool is already complete.
|
|
510
|
+
// We need to check for batch completion to either finish or process the next in queue.
|
|
511
|
+
await this.checkAndNotifyCompletion(signal);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
// This logic is moved from the old `for` loop in `_schedule`.
|
|
515
|
+
if (toolCall.status === 'validating') {
|
|
516
|
+
const { request: reqInfo, invocation } = toolCall;
|
|
517
|
+
try {
|
|
518
|
+
if (signal.aborted) {
|
|
519
|
+
this.setStatusInternal(reqInfo.callId, 'cancelled', signal, 'Tool call cancelled by user.');
|
|
520
|
+
// The completion check will handle the cascade.
|
|
521
|
+
await this.checkAndNotifyCompletion(signal);
|
|
522
|
+
return;
|
|
442
523
|
}
|
|
443
|
-
const
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
const confirmationDetails = await invocation.shouldConfirmExecute(signal);
|
|
451
|
-
if (!confirmationDetails) {
|
|
452
|
-
this.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
453
|
-
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
454
|
-
continue;
|
|
455
|
-
}
|
|
456
|
-
if (this.isAutoApproved(validatingCall)) {
|
|
524
|
+
const confirmationDetails = await invocation.shouldConfirmExecute(signal);
|
|
525
|
+
if (!confirmationDetails) {
|
|
526
|
+
this.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
527
|
+
this.setStatusInternal(reqInfo.callId, 'scheduled', signal);
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
if (this.isAutoApproved(toolCall)) {
|
|
457
531
|
this.setToolCallOutcome(reqInfo.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
458
|
-
this.setStatusInternal(reqInfo.callId, 'scheduled');
|
|
532
|
+
this.setStatusInternal(reqInfo.callId, 'scheduled', signal);
|
|
459
533
|
}
|
|
460
534
|
else {
|
|
461
535
|
// Allow IDE to resolve confirmation
|
|
@@ -475,35 +549,33 @@ export class CoreToolScheduler {
|
|
|
475
549
|
...confirmationDetails,
|
|
476
550
|
onConfirm: (outcome, payload) => this.handleConfirmationResponse(reqInfo.callId, originalOnConfirm, outcome, signal, payload),
|
|
477
551
|
};
|
|
478
|
-
this.setStatusInternal(reqInfo.callId, 'awaiting_approval', wrappedConfirmationDetails);
|
|
552
|
+
this.setStatusInternal(reqInfo.callId, 'awaiting_approval', signal, wrappedConfirmationDetails);
|
|
479
553
|
}
|
|
480
554
|
}
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
555
|
+
}
|
|
556
|
+
catch (error) {
|
|
557
|
+
if (signal.aborted) {
|
|
558
|
+
this.setStatusInternal(reqInfo.callId, 'cancelled', signal, 'Tool call cancelled by user.');
|
|
559
|
+
await this.checkAndNotifyCompletion(signal);
|
|
560
|
+
}
|
|
561
|
+
else {
|
|
562
|
+
this.setStatusInternal(reqInfo.callId, 'error', signal, createErrorResponse(reqInfo, error instanceof Error ? error : new Error(String(error)), ToolErrorType.UNHANDLED_EXCEPTION));
|
|
563
|
+
await this.checkAndNotifyCompletion(signal);
|
|
487
564
|
}
|
|
488
565
|
}
|
|
489
|
-
await this.attemptExecutionOfScheduledCalls(signal);
|
|
490
|
-
void this.checkAndNotifyCompletion();
|
|
491
|
-
}
|
|
492
|
-
finally {
|
|
493
|
-
this.isScheduling = false;
|
|
494
566
|
}
|
|
567
|
+
await this.attemptExecutionOfScheduledCalls(signal);
|
|
495
568
|
}
|
|
496
569
|
async handleConfirmationResponse(callId, originalOnConfirm, outcome, signal, payload) {
|
|
497
570
|
const toolCall = this.toolCalls.find((c) => c.request.callId === callId && c.status === 'awaiting_approval');
|
|
498
571
|
if (toolCall && toolCall.status === 'awaiting_approval') {
|
|
499
572
|
await originalOnConfirm(outcome);
|
|
500
573
|
}
|
|
501
|
-
if (outcome === ToolConfirmationOutcome.ProceedAlways) {
|
|
502
|
-
await this.autoApproveCompatiblePendingTools(signal, callId);
|
|
503
|
-
}
|
|
504
574
|
this.setToolCallOutcome(callId, outcome);
|
|
505
575
|
if (outcome === ToolConfirmationOutcome.Cancel || signal.aborted) {
|
|
506
|
-
|
|
576
|
+
// Instead of just cancelling one tool, trigger the full cancel cascade.
|
|
577
|
+
this.cancelAll(signal);
|
|
578
|
+
return; // `cancelAll` calls `checkAndNotifyCompletion`, so we can exit here.
|
|
507
579
|
}
|
|
508
580
|
else if (outcome === ToolConfirmationOutcome.ModifyWithEditor) {
|
|
509
581
|
const waitingToolCall = toolCall;
|
|
@@ -513,13 +585,13 @@ export class CoreToolScheduler {
|
|
|
513
585
|
if (!editorType) {
|
|
514
586
|
return;
|
|
515
587
|
}
|
|
516
|
-
this.setStatusInternal(callId, 'awaiting_approval', {
|
|
588
|
+
this.setStatusInternal(callId, 'awaiting_approval', signal, {
|
|
517
589
|
...waitingToolCall.confirmationDetails,
|
|
518
590
|
isModifying: true,
|
|
519
591
|
});
|
|
520
592
|
const { updatedParams, updatedDiff } = await modifyWithEditor(waitingToolCall.request.args, modifyContext, editorType, signal, this.onEditorClose);
|
|
521
593
|
this.setArgsInternal(callId, updatedParams);
|
|
522
|
-
this.setStatusInternal(callId, 'awaiting_approval', {
|
|
594
|
+
this.setStatusInternal(callId, 'awaiting_approval', signal, {
|
|
523
595
|
...waitingToolCall.confirmationDetails,
|
|
524
596
|
fileDiff: updatedDiff,
|
|
525
597
|
isModifying: false,
|
|
@@ -531,7 +603,7 @@ export class CoreToolScheduler {
|
|
|
531
603
|
if (payload?.newContent && toolCall) {
|
|
532
604
|
await this._applyInlineModify(toolCall, payload, signal);
|
|
533
605
|
}
|
|
534
|
-
this.setStatusInternal(callId, 'scheduled');
|
|
606
|
+
this.setStatusInternal(callId, 'scheduled', signal);
|
|
535
607
|
}
|
|
536
608
|
await this.attemptExecutionOfScheduledCalls(signal);
|
|
537
609
|
}
|
|
@@ -551,7 +623,7 @@ export class CoreToolScheduler {
|
|
|
551
623
|
const updatedParams = modifyContext.createUpdatedParams(currentContent, payload.newContent, toolCall.request.args);
|
|
552
624
|
const updatedDiff = Diff.createPatch(modifyContext.getFilePath(toolCall.request.args), currentContent, payload.newContent, 'Current', 'Proposed');
|
|
553
625
|
this.setArgsInternal(toolCall.request.callId, updatedParams);
|
|
554
|
-
this.setStatusInternal(toolCall.request.callId, 'awaiting_approval', {
|
|
626
|
+
this.setStatusInternal(toolCall.request.callId, 'awaiting_approval', signal, {
|
|
555
627
|
...toolCall.confirmationDetails,
|
|
556
628
|
fileDiff: updatedDiff,
|
|
557
629
|
});
|
|
@@ -569,7 +641,7 @@ export class CoreToolScheduler {
|
|
|
569
641
|
const scheduledCall = toolCall;
|
|
570
642
|
const { callId, name: toolName } = scheduledCall.request;
|
|
571
643
|
const invocation = scheduledCall.invocation;
|
|
572
|
-
this.setStatusInternal(callId, 'executing');
|
|
644
|
+
this.setStatusInternal(callId, 'executing', signal);
|
|
573
645
|
const liveOutputCallback = scheduledCall.tool.canUpdateOutput && this.outputUpdateHandler
|
|
574
646
|
? (outputChunk) => {
|
|
575
647
|
if (this.outputUpdateHandler) {
|
|
@@ -602,10 +674,9 @@ export class CoreToolScheduler {
|
|
|
602
674
|
try {
|
|
603
675
|
const toolResult = await promise;
|
|
604
676
|
if (signal.aborted) {
|
|
605
|
-
this.setStatusInternal(callId, 'cancelled', 'User cancelled tool execution.');
|
|
606
|
-
continue;
|
|
677
|
+
this.setStatusInternal(callId, 'cancelled', signal, 'User cancelled tool execution.');
|
|
607
678
|
}
|
|
608
|
-
if (toolResult.error === undefined) {
|
|
679
|
+
else if (toolResult.error === undefined) {
|
|
609
680
|
let content = toolResult.llmContent;
|
|
610
681
|
let outputFile = undefined;
|
|
611
682
|
const contentLength = typeof content === 'string' ? content.length : undefined;
|
|
@@ -640,45 +711,75 @@ export class CoreToolScheduler {
|
|
|
640
711
|
outputFile,
|
|
641
712
|
contentLength,
|
|
642
713
|
};
|
|
643
|
-
this.setStatusInternal(callId, 'success', successResponse);
|
|
714
|
+
this.setStatusInternal(callId, 'success', signal, successResponse);
|
|
644
715
|
}
|
|
645
716
|
else {
|
|
646
717
|
// It is a failure
|
|
647
718
|
const error = new Error(toolResult.error.message);
|
|
648
719
|
const errorResponse = createErrorResponse(scheduledCall.request, error, toolResult.error.type);
|
|
649
|
-
this.setStatusInternal(callId, 'error', errorResponse);
|
|
720
|
+
this.setStatusInternal(callId, 'error', signal, errorResponse);
|
|
650
721
|
}
|
|
651
722
|
}
|
|
652
723
|
catch (executionError) {
|
|
653
724
|
if (signal.aborted) {
|
|
654
|
-
this.setStatusInternal(callId, 'cancelled', 'User cancelled tool execution.');
|
|
725
|
+
this.setStatusInternal(callId, 'cancelled', signal, 'User cancelled tool execution.');
|
|
655
726
|
}
|
|
656
727
|
else {
|
|
657
|
-
this.setStatusInternal(callId, 'error', createErrorResponse(scheduledCall.request, executionError instanceof Error
|
|
728
|
+
this.setStatusInternal(callId, 'error', signal, createErrorResponse(scheduledCall.request, executionError instanceof Error
|
|
658
729
|
? executionError
|
|
659
730
|
: new Error(String(executionError)), ToolErrorType.UNHANDLED_EXCEPTION));
|
|
660
731
|
}
|
|
661
732
|
}
|
|
733
|
+
await this.checkAndNotifyCompletion(signal);
|
|
662
734
|
}
|
|
663
735
|
}
|
|
664
736
|
}
|
|
665
|
-
async checkAndNotifyCompletion() {
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
737
|
+
async checkAndNotifyCompletion(signal) {
|
|
738
|
+
// This method is now only concerned with the single active tool call.
|
|
739
|
+
if (this.toolCalls.length === 0) {
|
|
740
|
+
// It's possible to be called when a batch is cancelled before any tool has started.
|
|
741
|
+
if (signal.aborted && this.toolCallQueue.length > 0) {
|
|
742
|
+
this._cancelAllQueuedCalls();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
else {
|
|
746
|
+
const activeCall = this.toolCalls[0];
|
|
747
|
+
const isTerminal = activeCall.status === 'success' ||
|
|
748
|
+
activeCall.status === 'error' ||
|
|
749
|
+
activeCall.status === 'cancelled';
|
|
750
|
+
// If the active tool is not in a terminal state (e.g., it's 'executing' or 'awaiting_approval'),
|
|
751
|
+
// then the scheduler is still busy or paused. We should not proceed.
|
|
752
|
+
if (!isTerminal) {
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
755
|
+
// The active tool is finished. Move it to the completed batch.
|
|
756
|
+
const completedCall = activeCall;
|
|
757
|
+
this.completedToolCallsForBatch.push(completedCall);
|
|
758
|
+
logToolCall(this.config, new ToolCallEvent(completedCall));
|
|
759
|
+
// Clear the active tool slot. This is crucial for the sequential processing.
|
|
671
760
|
this.toolCalls = [];
|
|
672
|
-
|
|
673
|
-
|
|
761
|
+
}
|
|
762
|
+
// Now, check if the entire batch is complete.
|
|
763
|
+
// The batch is complete if the queue is empty or the operation was cancelled.
|
|
764
|
+
if (this.toolCallQueue.length === 0 || signal.aborted) {
|
|
765
|
+
if (signal.aborted) {
|
|
766
|
+
this._cancelAllQueuedCalls();
|
|
767
|
+
}
|
|
768
|
+
// If there's nothing to report and we weren't cancelled, we can stop.
|
|
769
|
+
// But if we were cancelled, we must proceed to potentially start the next queued request.
|
|
770
|
+
if (this.completedToolCallsForBatch.length === 0 && !signal.aborted) {
|
|
771
|
+
return;
|
|
674
772
|
}
|
|
675
773
|
if (this.onAllToolCallsComplete) {
|
|
676
774
|
this.isFinalizingToolCalls = true;
|
|
677
|
-
|
|
775
|
+
// Use the batch array, not the (now empty) active array.
|
|
776
|
+
await this.onAllToolCallsComplete(this.completedToolCallsForBatch);
|
|
777
|
+
this.completedToolCallsForBatch = []; // Clear after reporting.
|
|
678
778
|
this.isFinalizingToolCalls = false;
|
|
679
779
|
}
|
|
780
|
+
this.isCancelling = false;
|
|
680
781
|
this.notifyToolCallsUpdate();
|
|
681
|
-
// After completion, process the next item in the queue.
|
|
782
|
+
// After completion of the entire batch, process the next item in the main request queue.
|
|
682
783
|
if (this.requestQueue.length > 0) {
|
|
683
784
|
const next = this.requestQueue.shift();
|
|
684
785
|
this._schedule(next.request, next.signal)
|
|
@@ -686,10 +787,58 @@ export class CoreToolScheduler {
|
|
|
686
787
|
.catch(next.reject);
|
|
687
788
|
}
|
|
688
789
|
}
|
|
790
|
+
else {
|
|
791
|
+
// The batch is not yet complete, so continue processing the current batch sequence.
|
|
792
|
+
await this._processNextInQueue(signal);
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
_cancelAllQueuedCalls() {
|
|
796
|
+
while (this.toolCallQueue.length > 0) {
|
|
797
|
+
const queuedCall = this.toolCallQueue.shift();
|
|
798
|
+
// Don't cancel tools that already errored during validation.
|
|
799
|
+
if (queuedCall.status === 'error') {
|
|
800
|
+
this.completedToolCallsForBatch.push(queuedCall);
|
|
801
|
+
continue;
|
|
802
|
+
}
|
|
803
|
+
const durationMs = 'startTime' in queuedCall && queuedCall.startTime
|
|
804
|
+
? Date.now() - queuedCall.startTime
|
|
805
|
+
: undefined;
|
|
806
|
+
const errorMessage = '[Operation Cancelled] User cancelled the operation.';
|
|
807
|
+
this.completedToolCallsForBatch.push({
|
|
808
|
+
request: queuedCall.request,
|
|
809
|
+
tool: queuedCall.tool,
|
|
810
|
+
invocation: queuedCall.invocation,
|
|
811
|
+
status: 'cancelled',
|
|
812
|
+
response: {
|
|
813
|
+
callId: queuedCall.request.callId,
|
|
814
|
+
responseParts: [
|
|
815
|
+
{
|
|
816
|
+
functionResponse: {
|
|
817
|
+
id: queuedCall.request.callId,
|
|
818
|
+
name: queuedCall.request.name,
|
|
819
|
+
response: {
|
|
820
|
+
error: errorMessage,
|
|
821
|
+
},
|
|
822
|
+
},
|
|
823
|
+
},
|
|
824
|
+
],
|
|
825
|
+
resultDisplay: undefined,
|
|
826
|
+
error: undefined,
|
|
827
|
+
errorType: undefined,
|
|
828
|
+
contentLength: errorMessage.length,
|
|
829
|
+
},
|
|
830
|
+
durationMs,
|
|
831
|
+
outcome: ToolConfirmationOutcome.Cancel,
|
|
832
|
+
});
|
|
833
|
+
}
|
|
689
834
|
}
|
|
690
835
|
notifyToolCallsUpdate() {
|
|
691
836
|
if (this.onToolCallsUpdate) {
|
|
692
|
-
this.onToolCallsUpdate([
|
|
837
|
+
this.onToolCallsUpdate([
|
|
838
|
+
...this.completedToolCallsForBatch,
|
|
839
|
+
...this.toolCalls,
|
|
840
|
+
...this.toolCallQueue,
|
|
841
|
+
]);
|
|
693
842
|
}
|
|
694
843
|
}
|
|
695
844
|
setToolCallOutcome(callId, outcome) {
|
|
@@ -702,23 +851,6 @@ export class CoreToolScheduler {
|
|
|
702
851
|
};
|
|
703
852
|
});
|
|
704
853
|
}
|
|
705
|
-
/**
|
|
706
|
-
* Handle tool confirmation requests from the message bus when policy decision is ASK_USER.
|
|
707
|
-
* This publishes a response with requiresUserConfirmation=true to signal the tool
|
|
708
|
-
* that it should fall back to its legacy confirmation UI.
|
|
709
|
-
*/
|
|
710
|
-
handleToolConfirmationRequest(request) {
|
|
711
|
-
// When ASK_USER policy decision is made, the message bus emits the request here.
|
|
712
|
-
// We respond with requiresUserConfirmation=true to tell the tool to use its
|
|
713
|
-
// legacy confirmation flow (which will show diffs, URLs, etc in the UI).
|
|
714
|
-
const messageBus = this.config.getMessageBus();
|
|
715
|
-
messageBus.publish({
|
|
716
|
-
type: MessageBusType.TOOL_CONFIRMATION_RESPONSE,
|
|
717
|
-
correlationId: request.correlationId,
|
|
718
|
-
confirmed: false, // Not auto-approved
|
|
719
|
-
requiresUserConfirmation: true, // Use legacy UI confirmation
|
|
720
|
-
});
|
|
721
|
-
}
|
|
722
854
|
isAutoApproved(toolCall) {
|
|
723
855
|
if (this.config.getApprovalMode() === ApprovalMode.YOLO) {
|
|
724
856
|
return true;
|
|
@@ -731,21 +863,5 @@ export class CoreToolScheduler {
|
|
|
731
863
|
}
|
|
732
864
|
return doesToolInvocationMatch(tool, invocation, allowedTools);
|
|
733
865
|
}
|
|
734
|
-
async autoApproveCompatiblePendingTools(signal, triggeringCallId) {
|
|
735
|
-
const pendingTools = this.toolCalls.filter((call) => call.status === 'awaiting_approval' &&
|
|
736
|
-
call.request.callId !== triggeringCallId);
|
|
737
|
-
for (const pendingTool of pendingTools) {
|
|
738
|
-
try {
|
|
739
|
-
const stillNeedsConfirmation = await pendingTool.invocation.shouldConfirmExecute(signal);
|
|
740
|
-
if (!stillNeedsConfirmation) {
|
|
741
|
-
this.setToolCallOutcome(pendingTool.request.callId, ToolConfirmationOutcome.ProceedAlways);
|
|
742
|
-
this.setStatusInternal(pendingTool.request.callId, 'scheduled');
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
catch (error) {
|
|
746
|
-
console.error(`Error checking confirmation for tool ${pendingTool.request.callId}:`, error);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
}
|
|
750
866
|
}
|
|
751
867
|
//# sourceMappingURL=coreToolScheduler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,EACL,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAqG9D;;GAEG;AACH,SAAS,0BAA0B,CACjC,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,OAAO;QACL,gBAAgB,EAAE;YAChB,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,EAAE,MAAM,EAAE;SACrB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,MAAc,EACd,UAAyB;IAEzB,MAAM,gBAAgB,GACpB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAClD,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACf,CAAC,CAAC,UAAU,CAAC;IAEjB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,0BAA0B,CACjD,MAAM,EACN,QAAQ,EACR,2BAA2B,CAC5B,CAAC;QACF,OAAO,CAAC,gBAAgB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,8DAA8D;IAC9D,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,CAAC;QACtC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,MAAM,iBAAiB,GACrB,wBAAwB,CACtB,gBAAgB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAW,CAChE,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,6DAA6D;QAC7D,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,gBAAgB,CAAC,UAAU,IAAI,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,QAAQ,GACZ,gBAAgB,CAAC,UAAU,EAAE,QAAQ;YACrC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ;YACnC,SAAS,CAAC;QACZ,MAAM,gBAAgB,GAAG,0BAA0B,CACjD,MAAM,EACN,QAAQ,EACR,0BAA0B,QAAQ,iBAAiB,CACpD,CAAC;QACF,OAAO,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,gBAAgB,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO;YACL,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC;SACpE,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,OAAO;QACL,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,2BAA2B,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAoB;IACnC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,mBAAmB,GAAG,CAC1B,OAA4B,EAC5B,KAAY,EACZ,SAAoC,EACd,EAAE,CAAC,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;IACtB,KAAK;IACL,aAAa,EAAE;QACb;YACE,gBAAgB,EAAE;gBAChB,EAAE,EAAE,OAAO,CAAC,MAAM;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE;aACnC;SACF;KACF;IACD,aAAa,EAAE,KAAK,CAAC,OAAO;IAC5B,SAAS;IACT,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAe,EACf,MAAc,EACd,cAAsB,EACtB,SAAiB,EACjB,aAAqB;IAErB,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,WAAW,GAAG,OAAO,CAAC;IAE1B,qFAAqF;IACrF,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,mCAAmC;QAC1D,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;oBAChD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,KAAK,GAAG,YAAY,CAAC;QACrB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,gBAAgB,GACpB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,iCAAiC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5E,6CAA6C;IAC7C,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAE5C,OAAO;YACL,OAAO,EAAE;qCACsB,UAAU;uCACR,mBAAmB;IACtD,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;;;;EAIrB,gBAAgB,EAAE;YACd,UAAU;SACX,CAAC;IACJ,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EACL,gBAAgB,GAAG,8CAA8C;SACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAWD,MAAM,OAAO,iBAAiB;IACpB,SAAS,GAAe,EAAE,CAAC;IAC3B,mBAAmB,CAAuB;IAC1C,sBAAsB,CAA+B;IACrD,iBAAiB,CAA0B;IAC3C,kBAAkB,CAA+B;IACjD,MAAM,CAAS;IACf,aAAa,CAAa;IAC1B,qBAAqB,GAAG,KAAK,CAAC;IAC9B,YAAY,GAAG,KAAK,CAAC;IACrB,YAAY,GAKf,EAAE,CAAC;IAER,YAAY,OAAiC;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC7D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAE3C,yDAAyD;QACzD,IAAI,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/C,UAAU,CAAC,SAAS,CAClB,cAAc,CAAC,yBAAyB,EACxC,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IA0BO,iBAAiB,CACvB,YAAoB,EACpB,SAAiB,EACjB,aAAuB;QAEvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAClD,IACE,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY;gBAC3C,WAAW,CAAC,MAAM,KAAK,SAAS;gBAChC,WAAW,CAAC,MAAM,KAAK,OAAO;gBAC9B,WAAW,CAAC,MAAM,KAAK,WAAW,EAClC,CAAC;gBACD,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,+EAA+E;YAC/E,MAAM,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC;YAChD,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC;YACtC,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAE1C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YAEpC,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,UAAU,GAAG,iBAAiB;wBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB;wBAChC,CAAC,CAAC,SAAS,CAAC;oBACd,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,UAAU;wBACV,MAAM,EAAE,SAAS;wBACjB,QAAQ,EAAE,aAAqC;wBAC/C,UAAU;wBACV,OAAO;qBACc,CAAC;gBAC1B,CAAC;gBACD,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,MAAM,UAAU,GAAG,iBAAiB;wBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB;wBAChC,CAAC,CAAC,SAAS,CAAC;oBACd,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,MAAM,EAAE,OAAO;wBACf,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,aAAqC;wBAC/C,UAAU;wBACV,OAAO;qBACW,CAAC;gBACvB,CAAC;gBACD,KAAK,mBAAmB;oBACtB,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,mBAAmB;wBAC3B,mBAAmB,EAAE,aAA4C;wBACjE,SAAS,EAAE,iBAAiB;wBAC5B,OAAO;wBACP,UAAU;qBACQ,CAAC;gBACvB,KAAK,WAAW;oBACd,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,iBAAiB;wBAC5B,OAAO;wBACP,UAAU;qBACU,CAAC;gBACzB,KAAK,WAAW,CAAC,CAAC,CAAC;oBACjB,MAAM,UAAU,GAAG,iBAAiB;wBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB;wBAChC,CAAC,CAAC,SAAS,CAAC;oBAEd,8CAA8C;oBAC9C,IAAI,aAAa,GAAkC,SAAS,CAAC;oBAC7D,IAAI,WAAW,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;wBAC/C,MAAM,WAAW,GAAG,WAA8B,CAAC;wBACnD,IAAI,WAAW,CAAC,mBAAmB,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACpD,aAAa,GAAG;gCACd,QAAQ,EAAE,WAAW,CAAC,mBAAmB,CAAC,QAAQ;gCAClD,QAAQ,EAAE,WAAW,CAAC,mBAAmB,CAAC,QAAQ;gCAClD,eAAe,EACb,WAAW,CAAC,mBAAmB,CAAC,eAAe;gCACjD,UAAU,EAAE,WAAW,CAAC,mBAAmB,CAAC,UAAU;6BACvD,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAED,MAAM,YAAY,GAAG,iCAAiC,aAAa,EAAE,CAAC;oBACtE,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,UAAU;wBACV,MAAM,EAAE,WAAW;wBACnB,QAAQ,EAAE;4BACR,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;4BAClC,aAAa,EAAE;gCACb;oCACE,gBAAgB,EAAE;wCAChB,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM;wCAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI;wCAC9B,QAAQ,EAAE;4CACR,KAAK,EAAE,YAAY;yCACpB;qCACF;iCACF;6BACF;4BACD,aAAa;4BACb,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,SAAS;4BACpB,aAAa,EAAE,YAAY,CAAC,MAAM;yBACnC;wBACD,UAAU;wBACV,OAAO;qBACa,CAAC;gBACzB,CAAC;gBACD,KAAK,YAAY;oBACf,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,YAAY;wBACpB,SAAS,EAAE,iBAAiB;wBAC5B,OAAO;wBACP,UAAU;qBACW,CAAC;gBAC1B,KAAK,WAAW;oBACd,OAAO;wBACL,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,IAAI,EAAE,YAAY;wBAClB,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,iBAAiB;wBAC5B,OAAO;wBACP,UAAU;qBACU,CAAC;gBACzB,OAAO,CAAC,CAAC,CAAC;oBACR,MAAM,eAAe,GAAU,SAAS,CAAC;oBACzC,OAAO,eAAe,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,eAAe,CAAC,YAAoB,EAAE,IAAa;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,kEAAkE;YAClE,iCAAiC;YACjC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACpE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC5C,IAAI,CAAC,IAAI,EACT,IAA+B,CAChC,CAAC;YACF,IAAI,iBAAiB,YAAY,KAAK,EAAE,CAAC;gBACvC,MAAM,QAAQ,GAAG,mBAAmB,CAClC,IAAI,CAAC,OAAO,EACZ,iBAAiB,EACjB,aAAa,CAAC,mBAAmB,CAClC,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAA+B,EAAE;oBACnE,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,QAAQ;iBACU,CAAC;YACvB,CAAC;YAED,OAAO;gBACL,GAAG,IAAI;gBACP,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAA+B,EAAE;gBACnE,UAAU,EAAE,iBAAiB;aAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS;QACf,OAAO,CACL,IAAI,CAAC,qBAAqB;YAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CACrE,CACF,CAAC;IACJ,CAAC;IAEO,eAAe,CACrB,IAAwB,EACxB,IAAY;QAEZ,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,eAAuB,EAAE,IAAI,GAAG,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,eAAe,EAAE,CAAC;QAErE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC;SACrD,CAAC,CAAC,CAAC;QAEJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,cAAc,GAAG,WAAW;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,yBAAyB,cAAc,GAAG,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,cAAc,GAAG,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,QAAQ,CACN,OAAoD,EACpD,MAAmB;QAEnB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,YAAY,GAAG,GAAG,EAAE;oBACxB,6CAA6C;oBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CACnC,CAAC;oBACF,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;wBACf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACnC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;oBACrB,OAAO;oBACP,MAAM;oBACN,OAAO,EAAE,GAAG,EAAE;wBACZ,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;wBAClD,OAAO,EAAE,CAAC;oBACZ,CAAC;oBACD,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;wBACzB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;wBAClD,MAAM,CAAC,MAAM,CAAC,CAAC;oBACjB,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,OAAoD,EACpD,MAAmB;QAEnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;YACJ,CAAC;YACD,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAEvE,MAAM,YAAY,GAAe,iBAAiB,CAAC,GAAG,CACpD,CAAC,OAAO,EAAY,EAAE;gBACpB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;qBAC7B,eAAe,EAAE;qBACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxD,MAAM,YAAY,GAAG,SAAS,OAAO,CAAC,IAAI,+EAA+E,UAAU,EAAE,CAAC;oBACtI,OAAO;wBACL,MAAM,EAAE,OAAO;wBACf,OAAO,EAAE,OAAO;wBAChB,QAAQ,EAAE,mBAAmB,CAC3B,OAAO,EACP,IAAI,KAAK,CAAC,YAAY,CAAC,EACvB,aAAa,CAAC,mBAAmB,CAClC;wBACD,UAAU,EAAE,CAAC;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAC5C,YAAY,EACZ,OAAO,CAAC,IAAI,CACb,CAAC;gBACF,IAAI,iBAAiB,YAAY,KAAK,EAAE,CAAC;oBACvC,OAAO;wBACL,MAAM,EAAE,OAAO;wBACf,OAAO,EAAE,OAAO;wBAChB,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,mBAAmB,CAC3B,OAAO,EACP,iBAAiB,EACjB,aAAa,CAAC,mBAAmB,CAClC;wBACD,UAAU,EAAE,CAAC;qBACd,CAAC;gBACJ,CAAC;gBAED,OAAO;oBACL,MAAM,EAAE,YAAY;oBACpB,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,iBAAiB;oBAC7B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAE7B,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBACrC,SAAS;gBACX,CAAC;gBAED,MAAM,cAAc,GAAG,QAA8B,CAAC;gBACtD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;gBAExD,IAAI,CAAC;oBACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,IAAI,CAAC,iBAAiB,CACpB,OAAO,CAAC,MAAM,EACd,WAAW,EACX,8BAA8B,CAC/B,CAAC;wBACF,SAAS;oBACX,CAAC;oBAED,MAAM,mBAAmB,GACvB,MAAM,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;oBAEhD,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACzB,IAAI,CAAC,kBAAkB,CACrB,OAAO,CAAC,MAAM,EACd,uBAAuB,CAAC,aAAa,CACtC,CAAC;wBACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;wBACpD,SAAS;oBACX,CAAC;oBAED,IAAI,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC,kBAAkB,CACrB,OAAO,CAAC,MAAM,EACd,uBAAuB,CAAC,aAAa,CACtC,CAAC;wBACF,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBACtD,CAAC;yBAAM,CAAC;wBACN,oCAAoC;wBACpC,IACE,mBAAmB,CAAC,IAAI,KAAK,MAAM;4BACnC,mBAAmB,CAAC,eAAe,EACnC,CAAC;4BACD,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gCACtD,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oCACrC,IAAI,CAAC,0BAA0B,CAC7B,OAAO,CAAC,MAAM,EACd,mBAAmB,CAAC,SAAS,EAC7B,uBAAuB,CAAC,WAAW,EACnC,MAAM,CACP,CAAC;gCACJ,CAAC;qCAAM,CAAC;oCACN,IAAI,CAAC,0BAA0B,CAC7B,OAAO,CAAC,MAAM,EACd,mBAAmB,CAAC,SAAS,EAC7B,uBAAuB,CAAC,MAAM,EAC9B,MAAM,CACP,CAAC;gCACJ,CAAC;4BACH,CAAC,CAAC,CAAC;wBACL,CAAC;wBAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,SAAS,CAAC;wBACxD,MAAM,0BAA0B,GAAgC;4BAC9D,GAAG,mBAAmB;4BACtB,SAAS,EAAE,CACT,OAAgC,EAChC,OAAiC,EACjC,EAAE,CACF,IAAI,CAAC,0BAA0B,CAC7B,OAAO,CAAC,MAAM,EACd,iBAAiB,EACjB,OAAO,EACP,MAAM,EACN,OAAO,CACR;yBACJ,CAAC;wBACF,IAAI,CAAC,iBAAiB,CACpB,OAAO,CAAC,MAAM,EACd,mBAAmB,EACnB,0BAA0B,CAC3B,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,IAAI,CAAC,iBAAiB,CACpB,OAAO,CAAC,MAAM,EACd,WAAW,EACX,8BAA8B,CAC/B,CAAC;wBACF,SAAS;oBACX,CAAC;oBAED,IAAI,CAAC,iBAAiB,CACpB,OAAO,CAAC,MAAM,EACd,OAAO,EACP,mBAAmB,CACjB,OAAO,EACP,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACzD,aAAa,CAAC,mBAAmB,CAClC,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,MAAc,EACd,iBAAsE,EACtE,OAAgC,EAChC,MAAmB,EACnB,OAAiC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,mBAAmB,CACvE,CAAC;QAEF,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YACxD,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,KAAK,uBAAuB,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,CAAC,iCAAiC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,OAAO,KAAK,uBAAuB,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjE,IAAI,CAAC,iBAAiB,CACpB,MAAM,EACN,WAAW,EACX,8BAA8B,CAC/B,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,KAAK,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;YAChE,MAAM,eAAe,GAAG,QAA2B,CAAC;YACpD,IAAI,2BAA2B,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBACpE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE;oBAClD,GAAG,eAAe,CAAC,mBAAmB;oBACtC,WAAW,EAAE,IAAI;iBACa,CAAC,CAAC;gBAElC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,gBAAgB,CAG3D,eAAe,CAAC,OAAO,CAAC,IAAI,EAC5B,aAAmE,EACnE,UAAU,EACV,MAAM,EACN,IAAI,CAAC,aAAa,CACnB,CAAC;gBACF,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,EAAE;oBAClD,GAAG,eAAe,CAAC,mBAAmB;oBACtC,QAAQ,EAAE,WAAW;oBACrB,WAAW,EAAE,KAAK;iBACY,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,IAAI,OAAO,EAAE,UAAU,IAAI,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,kBAAkB,CAC3B,QAA2B,EAC3B,OAAO,EACP,MAAM,CACP,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAC9B,QAAyB,EACzB,OAAgC,EAChC,MAAmB;QAEnB,IACE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,KAAK,MAAM;YAC5C,CAAC,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC3C,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,iBAAiB,CAC1D,QAAQ,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC;QAEF,MAAM,aAAa,GAAG,aAAa,CAAC,mBAAmB,CACrD,cAAc,EACd,OAAO,CAAC,UAAU,EAClB,QAAQ,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAClC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAChD,cAAc,EACd,OAAO,CAAC,UAAU,EAClB,SAAS,EACT,UAAU,CACX,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE;YACnE,GAAG,QAAQ,CAAC,mBAAmB;YAC/B,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAC5C,MAAmB;QAEnB,MAAM,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CACnD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,WAAW;YAC3B,IAAI,CAAC,MAAM,KAAK,WAAW;YAC3B,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,IAAI,CAAC,MAAM,KAAK,OAAO,CAC1B,CAAC;QAEF,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CACtC,CAAC;YAEF,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;oBAAE,SAAS;gBAE9C,MAAM,aAAa,GAAG,QAAQ,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC;gBACzD,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;gBAC5C,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAE5C,MAAM,kBAAkB,GACtB,aAAa,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,mBAAmB;oBAC5D,CAAC,CAAC,CAAC,WAAgC,EAAE,EAAE;wBACnC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAC7B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;wBAChD,CAAC;wBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW;4BACvD,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;4BACpC,CAAC,CAAC,EAAE,CACP,CAAC;wBACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC/B,CAAC;oBACH,CAAC,CAAC,SAAS,CAAC;gBAEhB,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;gBAEnE,mEAAmE;gBACnE,wEAAwE;gBACxE,uEAAuE;gBACvE,mCAAmC;gBACnC,IAAI,OAA4B,CAAC;gBACjC,IAAI,UAAU,YAAY,mBAAmB,EAAE,CAAC;oBAC9C,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;wBACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,WAAW;4BACvD,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;4BAChB,CAAC,CAAC,EAAE,CACP,CAAC;wBACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC/B,CAAC,CAAC;oBACF,OAAO,GAAG,UAAU,CAAC,OAAO,CAC1B,MAAM,EACN,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,CACf,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,UAAU,CAAC,OAAO,CAC1B,MAAM,EACN,kBAAkB,EAClB,oBAAoB,CACrB,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,UAAU,GAAe,MAAM,OAAO,CAAC;oBAC7C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,IAAI,CAAC,iBAAiB,CACpB,MAAM,EACN,WAAW,EACX,gCAAgC,CACjC,CAAC;wBACF,SAAS;oBACX,CAAC;oBAED,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBACnC,IAAI,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;wBACpC,IAAI,UAAU,GAAuB,SAAS,CAAC;wBAC/C,MAAM,aAAa,GACjB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;wBAC3D,IACE,OAAO,OAAO,KAAK,QAAQ;4BAC3B,QAAQ,KAAK,eAAe;4BAC5B,IAAI,CAAC,MAAM,CAAC,6BAA6B,EAAE;4BAC3C,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,GAAG,CAAC;4BAChD,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,CAAC,EAC5C,CAAC;4BACD,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;4BAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,8BAA8B,EAAE,CAAC;4BAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;4BACvD,MAAM,eAAe,GAAG,MAAM,qBAAqB,CACjD,OAAO,EACP,MAAM,EACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EACvC,SAAS,EACT,KAAK,CACN,CAAC;4BACF,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC;4BAClC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;4BAExC,IAAI,UAAU,EAAE,CAAC;gCACf,sBAAsB,CACpB,IAAI,CAAC,MAAM,EACX,IAAI,wBAAwB,CAC1B,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B;oCACE,QAAQ;oCACR,qBAAqB;oCACrB,sBAAsB,EAAE,OAAO,CAAC,MAAM;oCACtC,SAAS;oCACT,KAAK;iCACN,CACF,CACF,CAAC;4BACJ,CAAC;wBACH,CAAC;wBAED,MAAM,QAAQ,GAAG,yBAAyB,CACxC,QAAQ,EACR,MAAM,EACN,OAAO,CACR,CAAC;wBACF,MAAM,eAAe,GAAyB;4BAC5C,MAAM;4BACN,aAAa,EAAE,QAAQ;4BACvB,aAAa,EAAE,UAAU,CAAC,aAAa;4BACvC,KAAK,EAAE,SAAS;4BAChB,SAAS,EAAE,SAAS;4BACpB,UAAU;4BACV,aAAa;yBACd,CAAC;wBACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,kBAAkB;wBAClB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAClD,MAAM,aAAa,GAAG,mBAAmB,CACvC,aAAa,CAAC,OAAO,EACrB,KAAK,EACL,UAAU,CAAC,KAAK,CAAC,IAAI,CACtB,CAAC;wBACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBAAC,OAAO,cAAuB,EAAE,CAAC;oBACjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,IAAI,CAAC,iBAAiB,CACpB,MAAM,EACN,WAAW,EACX,gCAAgC,CACjC,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,iBAAiB,CACpB,MAAM,EACN,OAAO,EACP,mBAAmB,CACjB,aAAa,CAAC,OAAO,EACrB,cAAc,YAAY,KAAK;4BAC7B,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EACrC,aAAa,CAAC,mBAAmB,CAClC,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAC9C,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,IAAI,CAAC,MAAM,KAAK,OAAO;YACvB,IAAI,CAAC,MAAM,KAAK,WAAW,CAC9B,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACrD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAwB,CAAC;YAClE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YAEpB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,CAAC;YAED,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAChC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBAClD,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACrC,CAAC;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,wDAAwD;YACxD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAG,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;qBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;qBAClB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,MAAc,EAAE,OAAgC;QACzE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC;YAChD,OAAO;gBACL,GAAG,IAAI;gBACP,OAAO;aACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACK,6BAA6B,CACnC,OAAgC;QAEhC,iFAAiF;QACjF,4EAA4E;QAC5E,yEAAyE;QACzE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/C,UAAU,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,cAAc,CAAC,0BAA0B;YAC/C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,SAAS,EAAE,KAAK,EAAE,oBAAoB;YACtC,wBAAwB,EAAE,IAAI,EAAE,6BAA6B;SAC9D,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,QAA4B;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;QACzD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QACtC,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAE7D,IAAI,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,4BAA4B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,iCAAiC,CAC7C,MAAmB,EACnB,gBAAwB;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,mBAAmB;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,gBAAgB,CACtB,CAAC;QAEvB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,sBAAsB,GAC1B,MAAM,WAAW,CAAC,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAE5D,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,IAAI,CAAC,kBAAkB,CACrB,WAAW,CAAC,OAAO,CAAC,MAAM,EAC1B,uBAAuB,CAAC,aAAa,CACtC,CAAC;oBACF,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,wCAAwC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,EACrE,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"coreToolScheduler.js","sourceRoot":"","sources":["../../../src/core/coreToolScheduler.ts"],"names":[],"mappings":"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"}
|