Verbose: collapse tool meta paths by directory
This commit is contained in:
@@ -134,7 +134,29 @@ function formatToolPrefix(toolName?: string, meta?: string) {
|
||||
function formatToolAggregate(toolName?: string, metas?: string[]) {
|
||||
const filtered = (metas ?? []).filter(Boolean);
|
||||
if (!filtered.length) return formatToolPrefix(toolName);
|
||||
return `${formatToolPrefix(toolName)} ${filtered.join(", ")}`;
|
||||
|
||||
// Group paths under common directory to reduce noise
|
||||
const grouped: Record<string, string[]> = {};
|
||||
for (const m of filtered) {
|
||||
const parts = m.split("/");
|
||||
if (parts.length > 1) {
|
||||
const dir = parts.slice(0, -1).join("/");
|
||||
const base = parts.at(-1) ?? m;
|
||||
if (!grouped[dir]) grouped[dir] = [];
|
||||
grouped[dir].push(base);
|
||||
} else {
|
||||
if (!grouped["."]) grouped["."] = [];
|
||||
grouped["."].push(m);
|
||||
}
|
||||
}
|
||||
|
||||
const segments = Object.entries(grouped).map(([dir, files]) => {
|
||||
const brace = files.length > 1 ? `{${files.join(", ")}}` : files[0];
|
||||
if (dir === ".") return brace;
|
||||
return `${dir}/${brace}`;
|
||||
});
|
||||
|
||||
return `${formatToolPrefix(toolName)} ${segments.join("; ")}`;
|
||||
}
|
||||
|
||||
export function summarizeClaudeMetadata(payload: unknown): string | undefined {
|
||||
|
||||
Reference in New Issue
Block a user