mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 00:40:42 +00:00
* feat: wire codex diagnostics feedback * fix: harden codex diagnostics hints * fix: neutralize codex diagnostics output * fix: tighten codex diagnostics safeguards * fix: bound codex diagnostics feedback output * fix: tighten codex diagnostics throttling * fix: confirm codex diagnostics uploads * docs: clarify codex diagnostics add-on * fix: route diagnostics through core command * fix: tighten diagnostics authorization * fix: pin diagnostics to bundled codex command * fix: limit owner status in plugin commands * fix: scope diagnostics confirmations * fix: scope codex diagnostics cooldowns * fix: harden codex diagnostics ownership scopes * fix: harden diagnostics command trust and display * fix: keep diagnostics command trust internal * fix: clarify diagnostics exec boundary * fix: consume codex diagnostics confirmations atomically * test: include codex diagnostics binding metadata * test: use string codex binding timestamps * fix: keep reserved command trust host-only * fix: harden diagnostics trust and resume hints * wire diagnostics through exec approval * fix: keep diagnostics tests aligned with bundled root trust * fix telegram diagnostics owner auth * route trajectory exports through exec approval * fix trajectory exec command encoding * fix telegram group owner auth * fix export trajectory approval hardening * fix pairing command owner bootstrap * fix telegram owner exec approvals * fix: make diagnostics approval flow pasteable * fix: route native sensitive command followups * fix: invoke diagnostics exports with current cli * fix: refresh exec approval protocol models * fix: list codex diagnostics from thread bindings * fix: fold codex diagnostics into exec approval * fix: preserve diagnostics approval line breaks * docs: clarify diagnostics codex workflow
47 lines
1.9 KiB
TypeScript
47 lines
1.9 KiB
TypeScript
import {
|
|
buildExecApprovalPendingReplyPayload,
|
|
resolveExecApprovalRequestAllowedDecisions,
|
|
resolveExecApprovalCommandDisplay,
|
|
} from "openclaw/plugin-sdk/approval-reply-runtime";
|
|
import type { ExecApprovalRequest } from "openclaw/plugin-sdk/approval-runtime";
|
|
import type { OpenClawConfig } from "openclaw/plugin-sdk/config-types";
|
|
import { normalizeMessageChannel } from "openclaw/plugin-sdk/routing";
|
|
import { isTelegramExecApprovalClientEnabled } from "./exec-approvals.js";
|
|
|
|
export function shouldSuppressTelegramExecApprovalForwardingFallback(params: {
|
|
cfg: OpenClawConfig;
|
|
target: { channel: string; accountId?: string | null };
|
|
request: ExecApprovalRequest;
|
|
}): boolean {
|
|
const channel = normalizeMessageChannel(params.target.channel) ?? params.target.channel;
|
|
if (channel !== "telegram") {
|
|
return false;
|
|
}
|
|
const requestChannel = normalizeMessageChannel(params.request.request.turnSourceChannel ?? "");
|
|
if (requestChannel !== "telegram") {
|
|
return false;
|
|
}
|
|
const accountId =
|
|
params.target.accountId?.trim() || params.request.request.turnSourceAccountId?.trim();
|
|
return isTelegramExecApprovalClientEnabled({ cfg: params.cfg, accountId });
|
|
}
|
|
|
|
export function buildTelegramExecApprovalPendingPayload(params: {
|
|
request: ExecApprovalRequest;
|
|
nowMs: number;
|
|
}) {
|
|
return buildExecApprovalPendingReplyPayload({
|
|
approvalId: params.request.id,
|
|
approvalSlug: params.request.id.slice(0, 8),
|
|
approvalCommandId: params.request.id,
|
|
warningText: params.request.request.warningText ?? undefined,
|
|
command: resolveExecApprovalCommandDisplay(params.request.request).commandText,
|
|
cwd: params.request.request.cwd ?? undefined,
|
|
host: params.request.request.host === "node" ? "node" : "gateway",
|
|
nodeId: params.request.request.nodeId ?? undefined,
|
|
allowedDecisions: resolveExecApprovalRequestAllowedDecisions(params.request.request),
|
|
expiresAtMs: params.request.expiresAtMs,
|
|
nowMs: params.nowMs,
|
|
});
|
|
}
|