






















@@ -260,10 +260,10 @@ function commandApprovalDecision(
260260outcome: AppServerApprovalOutcome,
261261): JsonValue {
262262if (outcome === "cancelled") {
263-return "cancel";
263+return commandRejectionDecision(requestParams, "cancel");
264264}
265265if (outcome === "denied" || outcome === "unavailable") {
266-return "decline";
266+return commandRejectionDecision(requestParams, "decline");
267267}
268268if (outcome === "approved-session") {
269269if (hasAvailableDecision(requestParams, "acceptForSession")) {
@@ -274,7 +274,9 @@ function commandApprovalDecision(
274274return amendmentDecision;
275275}
276276}
277-return hasAvailableDecision(requestParams, "accept") ? "accept" : "decline";
277+return hasAvailableDecision(requestParams, "accept")
278+ ? "accept"
279+ : commandRejectionDecision(requestParams, "decline");
278280}
279281280282function fileChangeApprovalDecision(outcome: AppServerApprovalOutcome): JsonValue {
@@ -517,6 +519,24 @@ function findAvailableCommandAmendmentDecision(
517519);
518520}
519521522+function commandRejectionDecision(
523+requestParams: JsonObject | undefined,
524+preferred: "decline" | "cancel",
525+): JsonValue {
526+const available = requestParams?.availableDecisions;
527+if (!Array.isArray(available)) {
528+return preferred;
529+}
530+if (available.includes(preferred)) {
531+return preferred;
532+}
533+const alternate = preferred === "decline" ? "cancel" : "decline";
534+if (available.includes(alternate)) {
535+return alternate;
536+}
537+return preferred;
538+}
539+520540function approvalResolutionMessage(outcome: AppServerApprovalOutcome): string {
521541if (outcome === "approved-session") {
522542return "Codex app-server approval granted for the session.";
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。