





























@@ -1,8 +1,4 @@
1-import {
2-summarizeCommandSegmentsForDisplay,
3-type CommandExplanationSummary,
4-} from "../../infra/command-analysis/explain.js";
5-import { analyzeCommandForPolicy } from "../../infra/command-analysis/policy.js";
1+import { resolveCommandAnalysisSummaryForDisplay } from "../../infra/command-analysis/explain.js";
62import {
73resolveExecApprovalCommandDisplay,
84sanitizeExecApprovalDisplayText,
@@ -47,43 +43,6 @@ const APPROVAL_ALLOW_ALWAYS_UNAVAILABLE_DETAILS = {
4743} as const;
4844const RESERVED_PLUGIN_APPROVAL_ID_PREFIX = "plugin:";
494550-function sanitizeCommandAnalysisSummary(
51-summary: CommandExplanationSummary,
52-): CommandExplanationSummary {
53-return {
54-commandCount: summary.commandCount,
55-nestedCommandCount: summary.nestedCommandCount,
56-riskKinds: summary.riskKinds.map((kind) => sanitizeExecApprovalWarningText(kind)),
57-warningLines: summary.warningLines.map((line) => sanitizeExecApprovalWarningText(line)),
58-};
59-}
60-61-function resolveExecApprovalCommandAnalysis(params: {
62-host: string;
63-commandText: string;
64-commandArgv?: string[];
65-cwd?: string | null;
66-}): CommandExplanationSummary | null {
67-const analysis =
68-Array.isArray(params.commandArgv) && params.commandArgv.length > 0
69- ? analyzeCommandForPolicy({
70-source: "argv",
71-argv: params.commandArgv,
72-cwd: params.cwd ?? undefined,
73-})
74- : params.host === "node"
75- ? null
76- : analyzeCommandForPolicy({
77-source: "shell",
78-command: params.commandText,
79-cwd: params.cwd ?? undefined,
80-});
81-if (!analysis?.ok) {
82-return null;
83-}
84-return sanitizeCommandAnalysisSummary(summarizeCommandSegmentsForDisplay(analysis.segments));
85-}
86-8746type ExecApprovalIosPushDelivery = {
8847handleRequested?: (request: ExecApprovalRequest) => Promise<boolean>;
8948handleResolved?: (resolved: ExecApprovalResolved) => Promise<void>;
@@ -249,11 +208,12 @@ export function createExecApprovalHandlers(
249208}
250209const envBinding = buildSystemRunApprovalEnvBinding(p.env);
251210const warningText = normalizeOptionalString(p.warningText);
252-const commandAnalysis = resolveExecApprovalCommandAnalysis({
211+const commandAnalysis = resolveCommandAnalysisSummaryForDisplay({
253212 host,
254213commandText: effectiveCommandText,
255214commandArgv: effectiveCommandArgv,
256215cwd: effectiveCwd,
216+sanitizeText: sanitizeExecApprovalWarningText,
257217});
258218const systemRunBinding =
259219host === "node"
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。