Skip to content

Commit 0e02f7a

Browse files
committed
fix(agents): remove redundant tool meta assertion
Signed-off-by: samzong <samzong.lu@gmail.com>
1 parent 820e781 commit 0e02f7a

3 files changed

Lines changed: 32 additions & 5 deletions

File tree

src/agents/pi-embedded-runner/run/attempt.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,9 +2262,7 @@ export async function runEmbeddedAttempt(
22622262
const trustedLocalMediaToolNames = new Set(coreBuiltinToolNames);
22632263
for (const tool of uncompactedEffectiveTools) {
22642264
const name = (tool.name ?? "").trim();
2265-
const pluginId = getPluginToolMeta(
2266-
tool as Parameters<typeof getPluginToolMeta>[0],
2267-
)?.pluginId;
2265+
const pluginId = getPluginToolMeta(tool)?.pluginId;
22682266
if (
22692267
name &&
22702268
pluginId &&

src/agents/pi-embedded-subscribe.subscribe-embedded-pi-session.subscribeembeddedpisession.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,34 @@ describe("subscribeEmbeddedPiSession", () => {
357357
expect(payload.mediaUrls).toBeUndefined();
358358
});
359359

360+
it("uses builtin tool names as the direct-subscribe local media gate fallback", async () => {
361+
const onToolResult = vi.fn();
362+
const { emit } = createSubscribedHarness({
363+
runId: "run",
364+
onToolResult,
365+
verboseLevel: "full",
366+
toolResultFormat: "plain",
367+
builtinToolNames: new Set(["web_search"]),
368+
});
369+
370+
emitToolRun({
371+
emit,
372+
toolName: "Web_Search",
373+
toolCallId: "tool-1",
374+
isError: false,
375+
result: {
376+
content: [{ type: "text", text: "Fetched page\nMEDIA:/tmp/secret.png" }],
377+
},
378+
});
379+
380+
await vi.waitFor(() => {
381+
expect(onToolResult).toHaveBeenCalledTimes(2);
382+
});
383+
const payload = latestMockCallArg(onToolResult) as { text?: string; mediaUrls?: string[] };
384+
expect(payload.text ?? "").toContain("Fetched page");
385+
expect(payload.mediaUrls).toBeUndefined();
386+
});
387+
360388
it("delivers generated image media once in markdown verbose output", async () => {
361389
const onToolResult = vi.fn();
362390
const onBlockReply = vi.fn();

src/agents/pi-embedded-subscribe.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ export function subscribeEmbeddedPiSession(params: SubscribeEmbeddedPiSessionPar
124124
const canShowReasoning = params.thinkingLevel !== "off";
125125
const toolResultFormat = params.toolResultFormat ?? "markdown";
126126
const useMarkdown = toolResultFormat === "markdown";
127+
const trustedLocalMediaToolNames = params.trustedLocalMediaToolNames ?? params.builtinToolNames;
127128
const initialPendingToolMediaUrls = collectPendingMediaFromInternalEvents(params.internalEvents);
128129
const state: EmbeddedPiSubscribeState = {
129130
assistantTexts: [],
@@ -548,7 +549,7 @@ export function subscribeEmbeddedPiSession(params: SubscribeEmbeddedPiSessionPar
548549
toolName,
549550
mediaUrls ?? [],
550551
result,
551-
params.trustedLocalMediaToolNames,
552+
trustedLocalMediaToolNames,
552553
);
553554
if (!cleanedText && filteredMediaUrls.length === 0) {
554555
return;
@@ -979,7 +980,7 @@ export function subscribeEmbeddedPiSession(params: SubscribeEmbeddedPiSessionPar
979980
blockChunker,
980981
hookRunner: params.hookRunner,
981982
builtinToolNames: params.builtinToolNames,
982-
trustedLocalMediaToolNames: params.trustedLocalMediaToolNames,
983+
trustedLocalMediaToolNames,
983984
noteLastAssistant,
984985
shouldEmitToolResult,
985986
shouldEmitToolOutput,

0 commit comments

Comments
 (0)