

























@@ -1110,9 +1110,13 @@ export async function executePreparedCliRun(
11101110});
11111111let stdoutTail: Buffer = Buffer.alloc(0);
11121112let stdoutParseBuffer: Buffer = Buffer.alloc(0);
1113+let stdoutBytes = 0;
1114+const stdoutHash = crypto.createHash("sha256");
11131115let stdoutParseExceeded = false;
11141116let stderrTail: Buffer = Buffer.alloc(0);
11151117let stderrParseBuffer: Buffer = Buffer.alloc(0);
1118+let stderrBytes = 0;
1119+const stderrHash = crypto.createHash("sha256");
11161120let stderrParseExceeded = false;
1117112111181122params.onExecutionPhase?.({
@@ -1135,6 +1139,8 @@ export async function executePreparedCliRun(
11351139input: stdinPayload,
11361140captureOutput: false,
11371141onStdout: (chunk: string) => {
1142+stdoutBytes += Buffer.byteLength(chunk);
1143+stdoutHash.update(chunk);
11381144stdoutTail = appendCliOutputTail(stdoutTail, chunk);
11391145if (!stdoutParseExceeded) {
11401146const nextStdoutParse = appendCliOutputParseBuffer(stdoutParseBuffer, chunk);
@@ -1144,6 +1150,8 @@ export async function executePreparedCliRun(
11441150streamingParser?.push(chunk);
11451151},
11461152onStderr: (chunk: string) => {
1153+stderrBytes += Buffer.byteLength(chunk);
1154+stderrHash.update(chunk);
11471155stderrTail = appendCliOutputTail(stderrTail, chunk);
11481156if (!stderrParseExceeded) {
11491157const nextStderrParse = appendCliOutputParseBuffer(stderrParseBuffer, chunk);
@@ -1191,6 +1199,18 @@ export async function executePreparedCliRun(
11911199const stdoutDiagnostic = stdoutTail.toString("utf8").trim();
11921200const stderr = stderrParseBuffer.toString("utf8").trim();
11931201const stderrDiagnostic = stderrTail.toString("utf8").trim();
1202+const processDiagnostics = {
1203+backendId: context.backendResolved.id,
1204+processReason: result.reason,
1205+exitCode: result.exitCode,
1206+exitSignal: result.exitSignal,
1207+durationMs: result.durationMs,
1208+ stdoutBytes,
1209+stdoutHash: stdoutHash.digest("hex").slice(0, 12),
1210+ stderrBytes,
1211+stderrHash: stderrHash.digest("hex").slice(0, 12),
1212+ useResume,
1213+};
11941214if (logOutputText) {
11951215if (stdoutDiagnostic) {
11961216cliBackendLog.info(`cli stdout:\n${stdoutDiagnostic}`);
@@ -1347,6 +1367,10 @@ export async function executePreparedCliRun(
13471367);
13481368runOutput = {
13491369 ...parsed,
1370+diagnostics: {
1371+ ...(parsed.diagnostics ?? {}),
1372+process: processDiagnostics,
1373+},
13501374 rawText,
13511375finalPromptText: prompt,
13521376text: applyPluginTextReplacements(
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。