puppeteer-browser-agent
Version:
Puppeteer browser agent for use in AI agent systems
45 lines (38 loc) • 1.1 kB
text/typescript
import fs from "node:fs";
import type { DebugOpts } from "../../types";
import type { IAgentDriver } from "../../agent";
export interface AIMessageRedactor {
redactMessages(messages: any[]): string[];
}
export class OpenAIMessageRedactor implements AIMessageRedactor {
currentUrl = "";
debug: boolean;
driver: IAgentDriver;
constructor(driver: IAgentDriver, opts: DebugOpts) {
this.driver = driver;
this.debug = Boolean(opts.debug);
}
public redactMessages(messages: any[]) {
this.currentUrl = messages[messages.length - 1].url;
const redactMessage = this.redactMessage.bind(this);
return messages.map(redactMessage);
}
redactMessage(message: any) {
const msg = JSON.parse(JSON.stringify(message));
if (msg.url !== this.currentUrl) {
// msg.content = msg.redacted ?? msg.content ?? "";
}
msg.redacted = undefined;
msg.url = undefined;
return msg;
}
logRedacted(redactedMessages: any[]) {
if (!this.debug) {
return;
}
fs.writeFileSync(
`context_redacted${redactedMessages.length}.json`,
JSON.stringify(redactedMessages, null, 2),
);
}
}