{"version":3,"file":"agent/messages/views.mjs","sources":["webpack://@agent-infra/browser-use/./src/agent/messages/views.ts"],"sourcesContent":["/**\n * The following code is modified based on\n * https://github.com/nanobrowser/nanobrowser/blob/master/chrome-extension/src/background/agent/messages/views.ts\n *\n * Apache-2.0 License\n * Copyright (c) 2024 alexchenzl\n * https://github.com/nanobrowser/nanobrowser/blob/master/LICENSE\n */\nimport { type BaseMessage, HumanMessage } from '@langchain/core/messages';\n\nexport interface MessageMetadata {\n  inputTokens: number;\n}\n\nexport interface ManagedMessage {\n  message: BaseMessage;\n  metadata: MessageMetadata;\n}\n\nexport class MessageHistory {\n  messages: ManagedMessage[] = [];\n  totalTokens = 0;\n\n  addMessage(\n    message: BaseMessage,\n    metadata: MessageMetadata = { inputTokens: 0 },\n    position?: number,\n  ): void {\n    const managedMessage: ManagedMessage = {\n      message,\n      metadata,\n    };\n\n    if (position === undefined) {\n      this.messages.push(managedMessage);\n    } else {\n      this.messages.splice(position, 0, managedMessage);\n    }\n    this.totalTokens += metadata.inputTokens;\n  }\n\n  removeMessage(index = -1): void {\n    if (this.messages.length > 0) {\n      const msg = this.messages.splice(index, 1)[0];\n      this.totalTokens -= msg.metadata.inputTokens;\n    }\n  }\n\n  /**\n   * Removes the last message from the history if it is a human message.\n   * This is used to remove the state message from the history.\n   */\n  removeLastHumanMessage(): void {\n    if (\n      this.messages.length > 2 &&\n      this.messages[this.messages.length - 1].message instanceof HumanMessage\n    ) {\n      const msg = this.messages.pop();\n      if (msg) {\n        this.totalTokens -= msg.metadata.inputTokens;\n      }\n    }\n  }\n}\n"],"names":["MessageHistory","message","metadata","position","managedMessage","undefined","index","msg","HumanMessage"],"mappings":";;;;;AAOC;;;;;;;;;;AAYM,MAAMA;IAIX,WACEC,OAAoB,EACpBC,WAA4B;QAAE,aAAa;IAAE,CAAC,EAC9CC,QAAiB,EACX;QACN,MAAMC,iBAAiC;YACrCH;YACAC;QACF;QAEA,IAAIC,AAAaE,WAAbF,UACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACC;aAEnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACD,UAAU,GAAGC;QAEpC,IAAI,CAAC,WAAW,IAAIF,SAAS,WAAW;IAC1C;IAEA,cAAcI,QAAQ,EAAE,EAAQ;QAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG;YAC5B,MAAMC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAACD,OAAO,EAAE,CAAC,EAAE;YAC7C,IAAI,CAAC,WAAW,IAAIC,IAAI,QAAQ,CAAC,WAAW;QAC9C;IACF;IAMA,yBAA+B;QAC7B,IACE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,YAAYC,cAC3D;YACA,MAAMD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG;YAC7B,IAAIA,KACF,IAAI,CAAC,WAAW,IAAIA,IAAI,QAAQ,CAAC,WAAW;QAEhD;IACF;;QA1CA,mCAA6B,EAAE;QAC/B,sCAAc;;AA0ChB"}