@@ -33,6 +33,7 @@ import {
|
33 | 33 | extractCliErrorMessage, |
34 | 34 | parseCliOutput, |
35 | 35 | type CliOutput, |
| 36 | +type CliStreamingDelta, |
36 | 37 | } from "../cli-output.js"; |
37 | 38 | import { classifyFailoverReason } from "../embedded-agent-helpers.js"; |
38 | 39 | import { |
@@ -992,6 +993,28 @@ export async function executePreparedCliRun(
|
992 | 993 | }, |
993 | 994 | }); |
994 | 995 | }; |
| 996 | +const emitCliAssistantDelta = ({ text, delta }: CliStreamingDelta) => { |
| 997 | +if (text || delta) { |
| 998 | +observedCliActivity = true; |
| 999 | +} |
| 1000 | +if (!emitLiveEvents) { |
| 1001 | +return; |
| 1002 | +} |
| 1003 | +emitAgentEvent({ |
| 1004 | +runId: params.runId, |
| 1005 | +stream: "assistant", |
| 1006 | +data: { |
| 1007 | +text: applyPluginTextReplacements( |
| 1008 | +text, |
| 1009 | +context.backendResolved.textTransforms?.output, |
| 1010 | +), |
| 1011 | +delta: applyPluginTextReplacements( |
| 1012 | +delta, |
| 1013 | +context.backendResolved.textTransforms?.output, |
| 1014 | +), |
| 1015 | +}, |
| 1016 | +}); |
| 1017 | +}; |
995 | 1018 | if (shouldUseClaudeLiveSession(context)) { |
996 | 1019 | if (!hasJsonlOutput) { |
997 | 1020 | throw new Error("Claude live session requires JSONL streaming parser"); |
@@ -1018,28 +1041,7 @@ export async function executePreparedCliRun(
|
1018 | 1041 | useResume, |
1019 | 1042 | noOutputTimeoutMs, |
1020 | 1043 | getProcessSupervisor: executeDeps.getProcessSupervisor, |
1021 | | -onAssistantDelta: ({ text, delta }) => { |
1022 | | -if (text || delta) { |
1023 | | -observedCliActivity = true; |
1024 | | -} |
1025 | | -if (!emitLiveEvents) { |
1026 | | -return; |
1027 | | -} |
1028 | | -emitAgentEvent({ |
1029 | | -runId: params.runId, |
1030 | | -stream: "assistant", |
1031 | | -data: { |
1032 | | -text: applyPluginTextReplacements( |
1033 | | -text, |
1034 | | -context.backendResolved.textTransforms?.output, |
1035 | | -), |
1036 | | -delta: applyPluginTextReplacements( |
1037 | | -delta, |
1038 | | -context.backendResolved.textTransforms?.output, |
1039 | | -), |
1040 | | -}, |
1041 | | -}); |
1042 | | -}, |
| 1044 | +onAssistantDelta: emitCliAssistantDelta, |
1043 | 1045 | onToolUseStart: emitCliToolUseStart, |
1044 | 1046 | onToolResult: emitCliToolResult, |
1045 | 1047 | onCommentaryText: |
@@ -1072,28 +1074,7 @@ export async function executePreparedCliRun(
|
1072 | 1074 | ? createCliJsonlStreamingParser({ |
1073 | 1075 | backend, |
1074 | 1076 | providerId: context.backendResolved.id, |
1075 | | -onAssistantDelta: ({ text, delta }) => { |
1076 | | -if (text || delta) { |
1077 | | -observedCliActivity = true; |
1078 | | -} |
1079 | | -if (!emitLiveEvents) { |
1080 | | -return; |
1081 | | -} |
1082 | | -emitAgentEvent({ |
1083 | | -runId: params.runId, |
1084 | | -stream: "assistant", |
1085 | | -data: { |
1086 | | -text: applyPluginTextReplacements( |
1087 | | -text, |
1088 | | -context.backendResolved.textTransforms?.output, |
1089 | | -), |
1090 | | -delta: applyPluginTextReplacements( |
1091 | | -delta, |
1092 | | -context.backendResolved.textTransforms?.output, |
1093 | | -), |
1094 | | -}, |
1095 | | -}); |
1096 | | -}, |
| 1077 | +onAssistantDelta: emitCliAssistantDelta, |
1097 | 1078 | onToolUseStart: emitCliToolUseStart, |
1098 | 1079 | onToolResult: emitCliToolResult, |
1099 | 1080 | onCommentaryText: |
|