fix(coding-agent): removed redundant tool-name line in custom render

- Fixed custom-rendered tools with `mergeCallAndResult` (e.g. `lsp`) emitting a redundant tool-name line above the framed result.
- Collapsed the leading blank line for self-delimiting framed boxes.
- Added gallery fidelity routing `lsp`/`task` through the custom-tool branch via a `customRendered` fixture flag.
- Added gallery harness tests guarding state coverage and the custom-branch fallback label.
This commit is contained in:
can1357
2026-06-06 18:40:52 +02:00
parent 75e211415e
commit d1fbb28edc
7 changed files with 139 additions and 16 deletions
+19 -3
View File
@@ -45,10 +45,26 @@ const GENERIC_ERROR: GalleryResult = {
isError: true,
};
/** Build the fake `AgentTool` the component needs for its label and edit mode. */
/**
* Build the fake `AgentTool` the component needs for its label, edit mode, and —
* for `customRendered` fixtures — the renderer functions that route it through
* the same custom-tool branch production uses (see {@link GalleryFixture}).
*/
function fakeToolFor(name: string, fixture: GalleryFixture | undefined): AgentTool | undefined {
if (!fixture?.label && !fixture?.editMode) return undefined;
return { name, label: fixture.label ?? name, mode: fixture.editMode } as unknown as AgentTool;
if (!fixture?.label && !fixture?.editMode && !fixture?.customRendered) return undefined;
const tool: Record<string, unknown> = { name, label: fixture.label ?? name, mode: fixture.editMode };
if (fixture.customRendered) {
const renderer = toolRenderers[name] as
| { renderCall?: unknown; renderResult?: unknown; mergeCallAndResult?: unknown; inline?: unknown }
| undefined;
if (renderer) {
tool.renderCall = renderer.renderCall;
tool.renderResult = renderer.renderResult;
tool.mergeCallAndResult = renderer.mergeCallAndResult;
tool.inline = renderer.inline;
}
}
return tool as unknown as AgentTool;
}
/** The curated fixture for a tool, or a generic one for registry tools lacking sample data. */