{"version":3,"sources":["../../../src/tools/python/output.ts"],"names":["PythonToolOutput","ToolOutput","FILE_PREFIX","stdout","stderr","exitCode","outputFiles","register","isEmpty","getTextContent","executionStatus","trim","isImage","filename","some","ext","toLowerCase","endsWith","files","length","map","file","id","join","filter","Boolean","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;AAQO,MAAMA,yBAAyBC,mBAAAA,CAAAA;EARtC;;;;;;;AASE,EAAA,OAAOC,WAAAA,GAAc,cAAA;AAErB,EAAA,WAAA,CACkBC,MAAAA,EACAC,MAAAA,EACAC,QAAAA,EACAC,WAAAA,GAA4B,EAAA,EAC5C;AACA,IAAA,KAAA,EAAK,EAAA,IAAA,CALWH,MAAAA,GAAAA,MAAAA,EAAAA,IAAAA,CACAC,MAAAA,GAAAA,MAAAA,EAAAA,IAAAA,CACAC,QAAAA,GAAAA,QAAAA,EAAAA,IAAAA,CACAC,WAAAA,GAAAA,WAAAA;AAGlB,EAAA;EAEA;AACE,IAAA,IAAA,CAAKC,QAAAA,EAAQ;AACf;EAEAC,OAAAA,GAAU;AACR,IAAA,OAAO,KAAA;AACT,EAAA;EAEAC,cAAAA,GAAiB;AACf,IAAA,MAAMC,kBACJ,IAAA,CAAKL,QAAAA,KAAa,IACd,iCAAA,GACA,CAAA,gCAAA,EAAmC,KAAKA,QAAQ,CAAA,CAAA,CAAA;AACtD,IAAA,MAAMF,MAAAA,GAAS,IAAA,CAAKA,MAAAA,CAAOQ,IAAAA,EAAI,GAAK,CAAA;;AAA8B,EAAA,IAAA,CAAKR,MAAM;AAAa,MAAA,CAAA,GAAA,IAAA;AAC1F,IAAA,MAAMC,MAAAA,GAAS,IAAA,CAAKA,MAAAA,CAAOO,IAAAA,EAAI,GAAK,CAAA;;AAA2B,EAAA,IAAA,CAAKP,MAAM;AAAa,MAAA,CAAA,GAAA,IAAA;AACvF,IAAA,MAAMQ,OAAAA,2BAAWC,QAAAA,KACf;AAAC,MAAA,MAAA;AAAQ,MAAA,MAAA;AAAQ,MAAA,OAAA;AAAS,MAAA,MAAA;AAAQ,MAAA;MAAQC,IAAAA,CAAK,CAACC,QAAQF,QAAAA,CAASG,WAAAA,GAAcC,QAAAA,CAASF,GAAAA,CAAAA,CAAAA,EAD1E,SAAA,CAAA;AAEhB,IAAA,MAAMG,KAAAA,GAAQ,IAAA,CAAKZ,WAAAA,CAAYa,MAAAA,GAC3B,oJAAA,GACA,IAAA,CAAKb,WAAAA,CACFc,GAAAA,CACC,CAACC,IAAAA,KACC,CAAA,EAAGT,OAAAA,CAAQS,KAAKR,QAAQ,CAAA,GAAI,GAAA,GAAM,EAAA,CAAA,CAAA,EAAMQ,IAAAA,CAAKR,QAAQ,CAAA,EAAA,EAAKb,gBAAAA,CAAiBE,WAAW,CAAA,CAAA,EAAImB,IAAAA,CAAKC,EAAE,CAAA,CAAA,CAAG,CAAA,CAEvGC,IAAAA,CAAK,IAAA,CAAA,GACR,IAAA;AAEJ,IAAA,OAAO;AAACb,MAAAA,eAAAA;AAAiBP,MAAAA,MAAAA;AAAQC,MAAAA,MAAAA;AAAQc,MAAAA;MAAOM,MAAAA,CAAOC,OAAAA,CAAAA,CAASF,IAAAA,CAAK,IAAA,CAAA;AACvE,EAAA;EAEAG,cAAAA,GAAiB;AACf,IAAA,OAAO;AACLvB,MAAAA,MAAAA,EAAQ,IAAA,CAAKA,MAAAA;AACbC,MAAAA,MAAAA,EAAQ,IAAA,CAAKA,MAAAA;AACbC,MAAAA,QAAAA,EAAU,IAAA,CAAKA,QAAAA;AACfC,MAAAA,WAAAA,EAAa,IAAA,CAAKA;AACpB,KAAA;AACF,EAAA;AAEAqB,EAAAA,YAAAA,CAAaC,QAAAA,EAAkD;AAC7DC,IAAAA,MAAAA,CAAOC,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB,EAAA;AACF","file":"output.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ToolOutput } from \"@/tools/base.js\";\nimport { PythonFile } from \"@/tools/python/storage.js\";\n\nexport class PythonToolOutput extends ToolOutput {\n  static FILE_PREFIX = \"urn:bee:file\";\n\n  constructor(\n    public readonly stdout: string,\n    public readonly stderr: string,\n    public readonly exitCode?: number,\n    public readonly outputFiles: PythonFile[] = [],\n  ) {\n    super();\n  }\n\n  static {\n    this.register();\n  }\n\n  isEmpty() {\n    return false;\n  }\n\n  getTextContent() {\n    const executionStatus =\n      this.exitCode === 0\n        ? \"The code executed successfully.\"\n        : `The code exited with error code ${this.exitCode}.`;\n    const stdout = this.stdout.trim() ? `Standard output: \\n\\`\\`\\`\\n${this.stdout}\\n\\`\\`\\`` : null;\n    const stderr = this.stderr.trim() ? `Error output: \\n\\`\\`\\`\\n${this.stderr}\\n\\`\\`\\`` : null;\n    const isImage = (filename: string) =>\n      [\".png\", \".jpg\", \".jpeg\", \".gif\", \".bmp\"].some((ext) => filename.toLowerCase().endsWith(ext));\n    const files = this.outputFiles.length\n      ? \"The following files were created or modified. The user does not see them yet. To present a file to the user, send them the link below, verbatim:\\n\" +\n        this.outputFiles\n          .map(\n            (file) =>\n              `${isImage(file.filename) ? \"!\" : \"\"}[${file.filename}](${PythonToolOutput.FILE_PREFIX}:${file.id})`,\n          )\n          .join(\"\\n\")\n      : null;\n\n    return [executionStatus, stdout, stderr, files].filter(Boolean).join(\"\\n\");\n  }\n\n  createSnapshot() {\n    return {\n      stdout: this.stdout,\n      stderr: this.stderr,\n      exitCode: this.exitCode,\n      outputFiles: this.outputFiles,\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n"]}