@google/gemini-cli-a2a-server 0.53.0-preview.0 → 0.53.1
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/a2a-server.mjs +146 -31
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/a2a-server.mjs
CHANGED
|
@@ -220929,8 +220929,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
|
|
|
220929
220929
|
var init_git_commit = __esm({
|
|
220930
220930
|
"packages/core/dist/src/generated/git-commit.js"() {
|
|
220931
220931
|
"use strict";
|
|
220932
|
-
GIT_COMMIT_INFO = "
|
|
220933
|
-
CLI_VERSION = "0.53.
|
|
220932
|
+
GIT_COMMIT_INFO = "983af5d58";
|
|
220933
|
+
CLI_VERSION = "0.53.1";
|
|
220934
220934
|
}
|
|
220935
220935
|
});
|
|
220936
220936
|
|
|
@@ -291854,6 +291854,15 @@ var init_agentChatHistory = __esm({
|
|
|
291854
291854
|
clear() {
|
|
291855
291855
|
this.history = [];
|
|
291856
291856
|
}
|
|
291857
|
+
/**
|
|
291858
|
+
* Rolls back the history to a specified length.
|
|
291859
|
+
* Useful when a stream fails and we need to remove the un-responded turn(s).
|
|
291860
|
+
*/
|
|
291861
|
+
rollback(length) {
|
|
291862
|
+
if (length >= 0 && length <= this.history.length) {
|
|
291863
|
+
this.history = this.history.slice(0, length);
|
|
291864
|
+
}
|
|
291865
|
+
}
|
|
291857
291866
|
get() {
|
|
291858
291867
|
return this.history;
|
|
291859
291868
|
}
|
|
@@ -292663,7 +292672,8 @@ var init_uiTelemetry = __esm({
|
|
|
292663
292672
|
api: {
|
|
292664
292673
|
totalRequests: 0,
|
|
292665
292674
|
totalErrors: 0,
|
|
292666
|
-
totalLatencyMs: 0
|
|
292675
|
+
totalLatencyMs: 0,
|
|
292676
|
+
errorsByType: {}
|
|
292667
292677
|
},
|
|
292668
292678
|
tokens: {
|
|
292669
292679
|
input: 0,
|
|
@@ -292718,6 +292728,19 @@ var init_uiTelemetry = __esm({
|
|
|
292718
292728
|
lastPromptTokenCount: this.#lastPromptTokenCount
|
|
292719
292729
|
});
|
|
292720
292730
|
}
|
|
292731
|
+
recordSemanticValidationError(model, errorType) {
|
|
292732
|
+
const modelMetrics = this.getOrCreateModelMetrics(model);
|
|
292733
|
+
modelMetrics.api.totalErrors++;
|
|
292734
|
+
if (!modelMetrics.api.errorsByType) {
|
|
292735
|
+
modelMetrics.api.errorsByType = {};
|
|
292736
|
+
}
|
|
292737
|
+
const type2 = errorType || "INVALID_STREAM";
|
|
292738
|
+
modelMetrics.api.errorsByType[type2] = (modelMetrics.api.errorsByType[type2] || 0) + 1;
|
|
292739
|
+
this.emit("update", {
|
|
292740
|
+
metrics: this.#metrics,
|
|
292741
|
+
lastPromptTokenCount: this.#lastPromptTokenCount
|
|
292742
|
+
});
|
|
292743
|
+
}
|
|
292721
292744
|
getMetrics() {
|
|
292722
292745
|
return this.#metrics;
|
|
292723
292746
|
}
|
|
@@ -292839,6 +292862,11 @@ var init_uiTelemetry = __esm({
|
|
|
292839
292862
|
modelMetrics.api.totalRequests++;
|
|
292840
292863
|
modelMetrics.api.totalErrors++;
|
|
292841
292864
|
modelMetrics.api.totalLatencyMs += event.duration_ms;
|
|
292865
|
+
if (!modelMetrics.api.errorsByType) {
|
|
292866
|
+
modelMetrics.api.errorsByType = {};
|
|
292867
|
+
}
|
|
292868
|
+
const errorType = event.error_type || "UNKNOWN";
|
|
292869
|
+
modelMetrics.api.errorsByType[errorType] = (modelMetrics.api.errorsByType[errorType] || 0) + 1;
|
|
292842
292870
|
if (event.role) {
|
|
292843
292871
|
if (!modelMetrics.roles[event.role]) {
|
|
292844
292872
|
modelMetrics.roles[event.role] = createInitialRoleMetrics();
|
|
@@ -336548,7 +336576,7 @@ function getVersion() {
|
|
|
336548
336576
|
}
|
|
336549
336577
|
versionPromise = (async () => {
|
|
336550
336578
|
const pkgJson = await getPackageJson(__dirname4);
|
|
336551
|
-
return "0.53.
|
|
336579
|
+
return "0.53.1";
|
|
336552
336580
|
})();
|
|
336553
336581
|
return versionPromise;
|
|
336554
336582
|
}
|
|
@@ -365638,10 +365666,10 @@ var init_agent_loop_context = __esm({
|
|
|
365638
365666
|
|
|
365639
365667
|
// packages/core/dist/src/utils/messageInspectors.js
|
|
365640
365668
|
function isFunctionResponse(content) {
|
|
365641
|
-
return content.role === "user" && !!content.parts && content.parts.
|
|
365669
|
+
return content.role === "user" && !!content.parts && content.parts.some((part) => !!part.functionResponse);
|
|
365642
365670
|
}
|
|
365643
365671
|
function isFunctionCall(content) {
|
|
365644
|
-
return content.role === "model" && !!content.parts && content.parts.every((part) => !!part.functionCall);
|
|
365672
|
+
return content.role === "model" && !!content.parts && content.parts.length > 0 && content.parts.every((part) => !!part.functionCall);
|
|
365645
365673
|
}
|
|
365646
365674
|
var init_messageInspectors = __esm({
|
|
365647
365675
|
"packages/core/dist/src/utils/messageInspectors.js"() {
|
|
@@ -366258,15 +366286,18 @@ var init_geminiChat = __esm({
|
|
|
366258
366286
|
*/
|
|
366259
366287
|
async sendMessageStream(modelConfigKey, message, prompt_id, signal, role, displayContent, apiHistoryOverride) {
|
|
366260
366288
|
await this.sendPromise;
|
|
366289
|
+
const historyLengthBefore = this.agentHistory.length;
|
|
366290
|
+
const baselinePromptTokenCount = this.lastPromptTokenCount;
|
|
366261
366291
|
let streamDoneResolver;
|
|
366262
366292
|
const streamDonePromise = new Promise((resolve23) => {
|
|
366263
366293
|
streamDoneResolver = resolve23;
|
|
366264
366294
|
});
|
|
366265
366295
|
this.sendPromise = streamDonePromise;
|
|
366266
366296
|
let userContent = createUserContent(message);
|
|
366297
|
+
const isOriginalFunctionResponse = isFunctionResponse(userContent);
|
|
366267
366298
|
const { model } = this.context.config.modelConfigService.getResolvedConfig(modelConfigKey);
|
|
366268
366299
|
const isContextManagementEnabled = this.context.config.isContextManagementEnabled();
|
|
366269
|
-
if (!
|
|
366300
|
+
if (!isOriginalFunctionResponse) {
|
|
366270
366301
|
const userMessageParts = userContent.parts || [];
|
|
366271
366302
|
const userMessageContent = partListUnionToString(userMessageParts);
|
|
366272
366303
|
let finalDisplayContent = void 0;
|
|
@@ -366345,13 +366376,14 @@ var init_geminiChat = __esm({
|
|
|
366345
366376
|
const streamWithRetries = async function* () {
|
|
366346
366377
|
try {
|
|
366347
366378
|
const maxAttempts = this.context.config.getMaxAttempts();
|
|
366379
|
+
let lastStreamError = void 0;
|
|
366348
366380
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
366349
366381
|
let isConnectionPhase = true;
|
|
366350
366382
|
try {
|
|
366351
366383
|
if (attempt > 0) {
|
|
366352
366384
|
yield { type: StreamEventType.RETRY };
|
|
366353
366385
|
}
|
|
366354
|
-
const currentConfigKey = attempt > 0 ? { ...modelConfigKey, isRetry: true } : modelConfigKey;
|
|
366386
|
+
const currentConfigKey = attempt > 0 ? { ...modelConfigKey, isRetry: true, lastStreamError } : modelConfigKey;
|
|
366355
366387
|
isConnectionPhase = true;
|
|
366356
366388
|
const stream2 = await this.makeApiCallAndProcessStream(currentConfigKey, requestHistory, prompt_id, signal, role, apiHistoryOverride);
|
|
366357
366389
|
isConnectionPhase = false;
|
|
@@ -366360,6 +366392,9 @@ var init_geminiChat = __esm({
|
|
|
366360
366392
|
}
|
|
366361
366393
|
return;
|
|
366362
366394
|
} catch (error2) {
|
|
366395
|
+
if (error2 instanceof InvalidStreamError) {
|
|
366396
|
+
lastStreamError = error2;
|
|
366397
|
+
}
|
|
366363
366398
|
if (error2 instanceof AgentExecutionStoppedError) {
|
|
366364
366399
|
yield {
|
|
366365
366400
|
type: StreamEventType.AGENT_EXECUTION_STOPPED,
|
|
@@ -366385,7 +366420,7 @@ var init_geminiChat = __esm({
|
|
|
366385
366420
|
}
|
|
366386
366421
|
const isRetryable = isRetryableError(error2, this.context.config.getRetryFetchErrors());
|
|
366387
366422
|
const isContentError = error2 instanceof InvalidStreamError;
|
|
366388
|
-
const isRetryableContentError = isContentError
|
|
366423
|
+
const isRetryableContentError = isContentError;
|
|
366389
366424
|
const errorType = isContentError ? error2.type : getRetryErrorType(error2);
|
|
366390
366425
|
if (isRetryableContentError || isRetryable && !signal.aborted) {
|
|
366391
366426
|
const maxMidStreamAttempts = MID_STREAM_RETRY_OPTIONS.maxAttempts;
|
|
@@ -366414,6 +366449,13 @@ var init_geminiChat = __esm({
|
|
|
366414
366449
|
throw error2;
|
|
366415
366450
|
}
|
|
366416
366451
|
}
|
|
366452
|
+
} catch (error2) {
|
|
366453
|
+
if (!isOriginalFunctionResponse) {
|
|
366454
|
+
this.agentHistory.rollback(historyLengthBefore);
|
|
366455
|
+
this.chatRecordingService.updateMessagesFromHistory(this.agentHistory.get());
|
|
366456
|
+
this.lastPromptTokenCount = baselinePromptTokenCount;
|
|
366457
|
+
}
|
|
366458
|
+
throw error2;
|
|
366417
366459
|
} finally {
|
|
366418
366460
|
streamDoneResolver();
|
|
366419
366461
|
}
|
|
@@ -366472,6 +366514,22 @@ var init_geminiChat = __esm({
|
|
|
366472
366514
|
tools: this.tools,
|
|
366473
366515
|
abortSignal
|
|
366474
366516
|
};
|
|
366517
|
+
if (modelConfigKey.isRetry && modelConfigKey.lastStreamError instanceof InvalidStreamError) {
|
|
366518
|
+
const lastError = modelConfigKey.lastStreamError;
|
|
366519
|
+
let nudgeMessage = "";
|
|
366520
|
+
if (lastError.type === "THINKING_ONLY_RESPONSE") {
|
|
366521
|
+
nudgeMessage = "\n[System: You previously generated thoughts but failed to provide a final user-facing response. Please ensure you provide your final answer or call a tool now.]";
|
|
366522
|
+
} else if (lastError.type === "NO_RESPONSE_TEXT") {
|
|
366523
|
+
nudgeMessage = "\n[System: You previously returned an empty response with no text or thoughts. Please ensure you provide your final answer or call a tool now.]";
|
|
366524
|
+
}
|
|
366525
|
+
if (nudgeMessage) {
|
|
366526
|
+
if (typeof config2.systemInstruction === "string") {
|
|
366527
|
+
config2.systemInstruction += nudgeMessage;
|
|
366528
|
+
} else if (config2.systemInstruction === void 0) {
|
|
366529
|
+
config2.systemInstruction = nudgeMessage;
|
|
366530
|
+
}
|
|
366531
|
+
}
|
|
366532
|
+
}
|
|
366475
366533
|
let contentsToUse = supportsModernFeatures(modelToUse) ? [...contentsForPreviewModel] : [...requestContents];
|
|
366476
366534
|
const hookSystem = this.context.config.getHookSystem();
|
|
366477
366535
|
if (hookSystem) {
|
|
@@ -366714,6 +366772,8 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366714
366772
|
let hasToolCall = false;
|
|
366715
366773
|
let hasThoughts = false;
|
|
366716
366774
|
let finishReason;
|
|
366775
|
+
const bufferedThoughts = [];
|
|
366776
|
+
let bufferedUsageMetadata = void 0;
|
|
366717
366777
|
const finalFunctionCallsMap = /* @__PURE__ */ new Map();
|
|
366718
366778
|
const legacyFunctionCalls = [];
|
|
366719
366779
|
const callIndexToId = /* @__PURE__ */ new Map();
|
|
@@ -366759,7 +366819,10 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366759
366819
|
if (content?.parts) {
|
|
366760
366820
|
if (content.parts.some((part) => part.thought)) {
|
|
366761
366821
|
hasThoughts = true;
|
|
366762
|
-
this.
|
|
366822
|
+
const thought = this.extractThoughtFromContent(content);
|
|
366823
|
+
if (thought) {
|
|
366824
|
+
bufferedThoughts.push(thought);
|
|
366825
|
+
}
|
|
366763
366826
|
}
|
|
366764
366827
|
if (content.parts.some((part) => part.functionCall)) {
|
|
366765
366828
|
hasToolCall = true;
|
|
@@ -366781,10 +366844,7 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366781
366844
|
}
|
|
366782
366845
|
}
|
|
366783
366846
|
if (chunk.usageMetadata) {
|
|
366784
|
-
|
|
366785
|
-
if (chunk.usageMetadata.promptTokenCount !== void 0) {
|
|
366786
|
-
this.lastPromptTokenCount = chunk.usageMetadata.promptTokenCount;
|
|
366787
|
-
}
|
|
366847
|
+
bufferedUsageMetadata = chunk.usageMetadata;
|
|
366788
366848
|
}
|
|
366789
366849
|
const hookSystem = this.context.config.getHookSystem();
|
|
366790
366850
|
if (originalRequest && chunk && hookSystem) {
|
|
@@ -366840,17 +366900,14 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366840
366900
|
}
|
|
366841
366901
|
}
|
|
366842
366902
|
}
|
|
366843
|
-
const
|
|
366844
|
-
let
|
|
366845
|
-
|
|
366846
|
-
|
|
366847
|
-
|
|
366848
|
-
|
|
366849
|
-
|
|
366850
|
-
|
|
366851
|
-
} else {
|
|
366852
|
-
id = this.chatRecordingService.recordSyntheticMessage("gemini", consolidatedParts);
|
|
366853
|
-
}
|
|
366903
|
+
const rawResponseText = consolidatedParts.filter((part) => part.text).map((part) => part.text).join("");
|
|
366904
|
+
let responseText = rawResponseText.replace(/[\u200B-\u200D\uFEFF\u200E\u200F]/g, "");
|
|
366905
|
+
let previous;
|
|
366906
|
+
do {
|
|
366907
|
+
previous = responseText;
|
|
366908
|
+
responseText = responseText.replace(/<!--[\s\S]*?-->/g, "");
|
|
366909
|
+
} while (responseText !== previous);
|
|
366910
|
+
responseText = responseText.trim();
|
|
366854
366911
|
if (!hasToolCall) {
|
|
366855
366912
|
if (!finishReason) {
|
|
366856
366913
|
throw new InvalidStreamError("Model stream ended without a finish reason.", "NO_FINISH_REASON");
|
|
@@ -366862,9 +366919,43 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366862
366919
|
throw new InvalidStreamError("Model stream ended with unexpected tool call.", "UNEXPECTED_TOOL_CALL");
|
|
366863
366920
|
}
|
|
366864
366921
|
if (!responseText) {
|
|
366922
|
+
if (finishReason === FinishReason.MAX_TOKENS) {
|
|
366923
|
+
throw new InvalidStreamError("Model stream ended due to token limit exhaustion (MAX_TOKENS) with empty response text.", "MAX_TOKENS_EXCEEDED");
|
|
366924
|
+
}
|
|
366925
|
+
if (finishReason === FinishReason.SAFETY) {
|
|
366926
|
+
throw new InvalidStreamError("Model stream ended due to safety settings (SAFETY) with empty response text.", "SAFETY_BLOCKED");
|
|
366927
|
+
}
|
|
366928
|
+
if (finishReason === FinishReason.RECITATION) {
|
|
366929
|
+
throw new InvalidStreamError("Model stream ended due to recitation settings (RECITATION) with empty response text.", "RECITATION_BLOCKED");
|
|
366930
|
+
}
|
|
366931
|
+
if (finishReason === FinishReason.OTHER) {
|
|
366932
|
+
throw new InvalidStreamError("Model stream ended due to other settings (OTHER) with empty response text.", "OTHER_BLOCKED");
|
|
366933
|
+
}
|
|
366934
|
+
if (hasThoughts) {
|
|
366935
|
+
throw new InvalidStreamError("Model stream ended with empty response text but contained reasoning thoughts.", "THINKING_ONLY_RESPONSE");
|
|
366936
|
+
}
|
|
366865
366937
|
throw new InvalidStreamError("Model stream ended with empty response text.", "NO_RESPONSE_TEXT");
|
|
366866
366938
|
}
|
|
366867
366939
|
}
|
|
366940
|
+
for (const thought of bufferedThoughts) {
|
|
366941
|
+
this.chatRecordingService.recordThought(thought);
|
|
366942
|
+
}
|
|
366943
|
+
if (bufferedUsageMetadata) {
|
|
366944
|
+
this.chatRecordingService.recordMessageTokens(bufferedUsageMetadata);
|
|
366945
|
+
if (bufferedUsageMetadata.promptTokenCount !== void 0) {
|
|
366946
|
+
this.lastPromptTokenCount = bufferedUsageMetadata.promptTokenCount;
|
|
366947
|
+
}
|
|
366948
|
+
}
|
|
366949
|
+
let id;
|
|
366950
|
+
if (responseText || hasThoughts || hasToolCall) {
|
|
366951
|
+
id = this.chatRecordingService.recordMessage({
|
|
366952
|
+
model,
|
|
366953
|
+
type: "gemini",
|
|
366954
|
+
content: responseText
|
|
366955
|
+
});
|
|
366956
|
+
} else {
|
|
366957
|
+
id = this.chatRecordingService.recordSyntheticMessage("gemini", consolidatedParts);
|
|
366958
|
+
}
|
|
366868
366959
|
this.agentHistory.push({
|
|
366869
366960
|
id,
|
|
366870
366961
|
content: { role: "model", parts: consolidatedParts }
|
|
@@ -366902,11 +366993,11 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366902
366993
|
this.chatRecordingService.recordToolCalls(model, toolCallRecords);
|
|
366903
366994
|
}
|
|
366904
366995
|
/**
|
|
366905
|
-
* Extracts
|
|
366996
|
+
* Extracts thought from thought content.
|
|
366906
366997
|
*/
|
|
366907
|
-
|
|
366998
|
+
extractThoughtFromContent(content) {
|
|
366908
366999
|
if (!content.parts || content.parts.length === 0) {
|
|
366909
|
-
return;
|
|
367000
|
+
return void 0;
|
|
366910
367001
|
}
|
|
366911
367002
|
const thoughtPart = content.parts[0];
|
|
366912
367003
|
if (thoughtPart.text) {
|
|
@@ -366914,11 +367005,12 @@ This error was probably caused by cyclic schema references in one of the followi
|
|
|
366914
367005
|
const subjectStringMatches = rawText.match(/\*\*(.*?)\*\*/s);
|
|
366915
367006
|
const subject = subjectStringMatches ? subjectStringMatches[1].trim() : "";
|
|
366916
367007
|
const description = rawText.replace(/\*\*(.*?)\*\*/s, "").trim();
|
|
366917
|
-
|
|
367008
|
+
return {
|
|
366918
367009
|
subject,
|
|
366919
367010
|
description
|
|
366920
|
-
}
|
|
367011
|
+
};
|
|
366921
367012
|
}
|
|
367013
|
+
return void 0;
|
|
366922
367014
|
}
|
|
366923
367015
|
};
|
|
366924
367016
|
}
|
|
@@ -367171,7 +367263,13 @@ ${[...this.pendingCitations].sort().join("\n")}`
|
|
|
367171
367263
|
return;
|
|
367172
367264
|
}
|
|
367173
367265
|
if (e3 instanceof InvalidStreamError) {
|
|
367174
|
-
yield {
|
|
367266
|
+
yield {
|
|
367267
|
+
type: GeminiEventType.InvalidStream,
|
|
367268
|
+
value: {
|
|
367269
|
+
type: e3.type,
|
|
367270
|
+
message: e3.message
|
|
367271
|
+
}
|
|
367272
|
+
};
|
|
367175
367273
|
return;
|
|
367176
367274
|
}
|
|
367177
367275
|
const error2 = toFriendlyError(e3);
|
|
@@ -367521,6 +367619,16 @@ function renderOperationalGuidelines(options) {
|
|
|
367521
367619
|
- **Security First:** Always apply security best practices. Never introduce code that exposes, logs, or commits secrets, API keys, or other sensitive information.
|
|
367522
367620
|
|
|
367523
367621
|
## Tool Usage
|
|
367622
|
+
- **Tool Execution Response Rules:**
|
|
367623
|
+
1. After receiving a \`functionResponse\`, you MUST ALWAYS execute one of the following two actions:
|
|
367624
|
+
a) Call another tool to proceed with the task.
|
|
367625
|
+
b) Provide a user-facing text response explaining the tool output, your analysis, and next steps.
|
|
367626
|
+
2. You MUST NEVER return an empty response with no text and no tool calls.
|
|
367627
|
+
- **Post-Edit Response Rules:**
|
|
367628
|
+
1. After an edit tool execution (e.g. ${formatToolName(EDIT_TOOL_NAME)}, ${formatToolName(WRITE_FILE_TOOL_NAME)}), you MUST ALWAYS generate a user-facing text response summarizing:
|
|
367629
|
+
- What changes were made to the file.
|
|
367630
|
+
- Your verification plan or next steps (e.g. running tests).
|
|
367631
|
+
2. You MUST NEVER return an empty response with 0 text tokens after completing an edit.
|
|
367524
367632
|
- **Parallelism & Sequencing:** Tools execute in parallel by default. Execute multiple independent tool calls in parallel when feasible (e.g., searching, reading files, independent shell commands, or editing *different* files). If a tool depends on the output or side-effects of a previous tool in the same turn (e.g., running a shell command that depends on the success of a previous command), you MUST set the \`wait_for_previous\` parameter to \`true\` on the dependent tool to ensure sequential execution.
|
|
367525
367633
|
- **File Editing Collisions:** Do NOT make multiple calls to the ${formatToolName(EDIT_TOOL_NAME)} tool for the SAME file in a single turn. To make multiple edits to the same file, you MUST perform them sequentially across multiple conversational turns to prevent race conditions and ensure the file state is accurate before each edit.
|
|
367526
367634
|
- **Command Execution:** Use the ${formatToolName(SHELL_TOOL_NAME)} tool for running shell commands, remembering the safety rule to explain modifying commands first.${toolUsageInteractive(options.interactive, options.interactiveShellEnabled)}${toolUsageRememberingFacts(options)}
|
|
@@ -386080,6 +386188,7 @@ var init_scheduler = __esm({
|
|
|
386080
386188
|
for (const activeCall of activeCalls) {
|
|
386081
386189
|
if (!this.isTerminal(activeCall.status)) {
|
|
386082
386190
|
this.state.updateStatus(activeCall.request.callId, CoreToolCallStatus.Cancelled, "Operation cancelled by user");
|
|
386191
|
+
this.state.finalizeCall(activeCall.request.callId);
|
|
386083
386192
|
}
|
|
386084
386193
|
}
|
|
386085
386194
|
this.state.cancelAllQueued("Operation cancelled by user");
|
|
@@ -386194,6 +386303,12 @@ var init_scheduler = __esm({
|
|
|
386194
386303
|
*/
|
|
386195
386304
|
async _processNextItem(signal) {
|
|
386196
386305
|
if (signal.aborted || this.isCancelling) {
|
|
386306
|
+
const activeCalls2 = this.state.allActiveCalls;
|
|
386307
|
+
for (const call of activeCalls2) {
|
|
386308
|
+
if (this.isTerminal(call.status)) {
|
|
386309
|
+
this.state.finalizeCall(call.request.callId);
|
|
386310
|
+
}
|
|
386311
|
+
}
|
|
386197
386312
|
this.state.cancelAllQueued("Operation cancelled");
|
|
386198
386313
|
return false;
|
|
386199
386314
|
}
|