Verbose: shorten meta paths when aggregating
This commit is contained in:
@@ -93,12 +93,7 @@ function inferToolMeta(message?: ToolMessageLike): string | undefined {
|
|||||||
const limit = details && typeof details.limit === "number" ? details.limit : undefined;
|
const limit = details && typeof details.limit === "number" ? details.limit : undefined;
|
||||||
const command = details && typeof details.command === "string" ? details.command : undefined;
|
const command = details && typeof details.command === "string" ? details.command : undefined;
|
||||||
|
|
||||||
const formatPath = (p: string) => {
|
const formatPath = shortenPath;
|
||||||
const home = process.env.HOME;
|
|
||||||
if (home && p.startsWith(home + "/")) return p.replace(home, "~");
|
|
||||||
if (home && p === home) return "~";
|
|
||||||
return p;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (pathVal) {
|
if (pathVal) {
|
||||||
const displayPath = formatPath(pathVal);
|
const displayPath = formatPath(pathVal);
|
||||||
@@ -120,7 +115,7 @@ function normalizeToolResults(
|
|||||||
.map((tr) => ({
|
.map((tr) => ({
|
||||||
text: (tr.text ?? "").trim(),
|
text: (tr.text ?? "").trim(),
|
||||||
toolName: tr.toolName?.trim() || undefined,
|
toolName: tr.toolName?.trim() || undefined,
|
||||||
meta: tr.meta?.trim() || undefined,
|
meta: tr.meta ? shortenMetaPath(tr.meta) : undefined,
|
||||||
}))
|
}))
|
||||||
.filter((tr) => tr.text.length > 0);
|
.filter((tr) => tr.text.length > 0);
|
||||||
}
|
}
|
||||||
@@ -131,8 +126,24 @@ function formatToolPrefix(toolName?: string, meta?: string) {
|
|||||||
return extra ? `[🛠️ ${label} ${extra}]` : `[🛠️ ${label}]`;
|
return extra ? `[🛠️ ${label} ${extra}]` : `[🛠️ ${label}]`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shortenPath(p: string): string {
|
||||||
|
const home = process.env.HOME;
|
||||||
|
if (home && p.startsWith(home + "/")) return p.replace(home, "~");
|
||||||
|
if (home && p === home) return "~";
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
function shortenMetaPath(meta: string): string {
|
||||||
|
if (!meta) return meta;
|
||||||
|
const colonIdx = meta.indexOf(":");
|
||||||
|
if (colonIdx === -1) return shortenPath(meta);
|
||||||
|
const base = meta.slice(0, colonIdx);
|
||||||
|
const rest = meta.slice(colonIdx);
|
||||||
|
return `${shortenPath(base)}${rest}`;
|
||||||
|
}
|
||||||
|
|
||||||
function formatToolAggregate(toolName?: string, metas?: string[]) {
|
function formatToolAggregate(toolName?: string, metas?: string[]) {
|
||||||
const filtered = (metas ?? []).filter(Boolean);
|
const filtered = (metas ?? []).filter(Boolean).map(shortenMetaPath);
|
||||||
if (!filtered.length) return formatToolPrefix(toolName);
|
if (!filtered.length) return formatToolPrefix(toolName);
|
||||||
|
|
||||||
// Group paths under common directory to reduce noise
|
// Group paths under common directory to reduce noise
|
||||||
|
|||||||
Reference in New Issue
Block a user