mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 12:00:44 +00:00
Preserve suppressed item progress without tool callbacks
This commit is contained in:
committed by
Peter Steinberger
parent
09d7e7f461
commit
e51090e6a1
@@ -1194,6 +1194,54 @@ describe("runAgentTurnWithFallback", () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("preserves suppressed item progress when no tool-start callback is registered", async () => {
|
||||
const onItemEvent = vi.fn();
|
||||
state.runEmbeddedPiAgentMock.mockImplementationOnce(async (params: EmbeddedAgentParams) => {
|
||||
await params.onAgentEvent?.({
|
||||
stream: "item",
|
||||
data: {
|
||||
itemId: "cmd-1",
|
||||
kind: "command",
|
||||
title: "Command",
|
||||
name: "bash",
|
||||
phase: "start",
|
||||
status: "running",
|
||||
suppressChannelProgress: true,
|
||||
},
|
||||
});
|
||||
await params.onAgentEvent?.({
|
||||
stream: "tool",
|
||||
data: {
|
||||
itemId: "cmd-1",
|
||||
toolCallId: "cmd-1",
|
||||
name: "bash",
|
||||
phase: "start",
|
||||
args: { command: "pnpm test" },
|
||||
},
|
||||
});
|
||||
return { payloads: [{ text: "final" }], meta: {} };
|
||||
});
|
||||
|
||||
const runAgentTurnWithFallback = await getRunAgentTurnWithFallback();
|
||||
const result = await runAgentTurnWithFallback({
|
||||
...createMinimalRunAgentTurnParams({
|
||||
opts: {
|
||||
onItemEvent,
|
||||
} satisfies GetReplyOptions,
|
||||
}),
|
||||
});
|
||||
|
||||
expect(result.kind).toBe("success");
|
||||
expect(onItemEvent).toHaveBeenCalledWith({
|
||||
itemId: "cmd-1",
|
||||
kind: "command",
|
||||
title: "Command",
|
||||
name: "bash",
|
||||
phase: "start",
|
||||
status: "running",
|
||||
});
|
||||
});
|
||||
|
||||
it("forwards raw tool progress detail mode to tool-start reply options", async () => {
|
||||
const onToolStart = vi.fn();
|
||||
state.runEmbeddedPiAgentMock.mockImplementationOnce(async (params: EmbeddedAgentParams) => {
|
||||
|
||||
@@ -1675,7 +1675,11 @@ export async function runAgentTurnWithFallback(params: {
|
||||
]);
|
||||
}
|
||||
}
|
||||
if (evt.stream === "item" && evt.data.suppressChannelProgress !== true) {
|
||||
const suppressItemChannelProgress =
|
||||
evt.stream === "item" &&
|
||||
evt.data.suppressChannelProgress === true &&
|
||||
Boolean(params.opts?.onToolStart);
|
||||
if (evt.stream === "item" && !suppressItemChannelProgress) {
|
||||
await params.opts?.onItemEvent?.({
|
||||
itemId: readStringValue(evt.data.itemId),
|
||||
kind: readStringValue(evt.data.kind),
|
||||
|
||||
Reference in New Issue
Block a user