feat: auto-delete old conversations, and stop a tool call that repeats (#15)
This commit was merged in pull request #15.
This commit is contained in:
+18
-2
@@ -60,7 +60,13 @@ export function quote(text: string): string {
|
||||
/** One italic line, well below the weight of the answer it belongs to. */
|
||||
function renderTools(message: ThreadMessage): string {
|
||||
const names = message.toolCalls
|
||||
.map((call) => `\`${call.name}\`${call.isError ? " (failed)" : ""}`)
|
||||
.map((call) => {
|
||||
const name = `\`${call.name}\``;
|
||||
// A refused repeat did not fail, so it is not called a failure: it is the
|
||||
// loop noticing it was going in circles, which is worth saying plainly.
|
||||
if (call.repeated) return `${name} (repeated, stopped)`;
|
||||
return call.isError ? `${name} (failed)` : name;
|
||||
})
|
||||
.join(", ");
|
||||
|
||||
return `_Tools: ${names}_`;
|
||||
@@ -92,7 +98,17 @@ function renderMessage(message: ThreadMessage, options: TranscriptOptions): stri
|
||||
// something went wrong and should not be skimmed past.
|
||||
if (message.error) sections.push("", `**Error:** ${message.error}`);
|
||||
|
||||
if (options.showToolCalls && message.toolCalls.length > 0) {
|
||||
/**
|
||||
* Tool calls are a display preference, with one exception: a call that failed,
|
||||
* or that was refused because it kept repeating, is always listed. Those are
|
||||
* the two cases where hiding the line would leave the user with an answer they
|
||||
* cannot account for, and a model stuck in a loop is exactly the thing they
|
||||
* need to see.
|
||||
*/
|
||||
const showTools =
|
||||
options.showToolCalls || message.toolCalls.some((call) => call.isError || call.repeated);
|
||||
|
||||
if (showTools && message.toolCalls.length > 0) {
|
||||
sections.push("", renderTools(message));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user