"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PlanOutputParser = void 0; const output_parsers_1 = require("@langchain/core/output_parsers"); const prompt_js_1 = require("./prompt.cjs"); /** * Specific implementation of the `BaseOutputParser` class designed to * parse the output text into a `Plan` object. */ class PlanOutputParser extends output_parsers_1.BaseOutputParser { constructor() { super(...arguments); Object.defineProperty(this, "lc_namespace", { enumerable: true, configurable: true, writable: true, value: ["langchain", "experimental", "plan_and_execute"] }); } /** * Parses the output text into a `Plan` object. The steps are extracted by * splitting the text on newline followed by a number and a period, * indicating the start of a new step. The `` tag is then * removed from each step. * @param text The output text to be parsed. * @returns A `Plan` object consisting of a series of steps. */ async parse(text) { return { steps: text .split(/\n\d+\.\s?/) .slice(1) .map((step) => ({ text: step.replace(``, "") })), }; } /** * Returns a string that represents the format instructions for the plan. * This is defined by the `PLANNER_SYSTEM_PROMPT_MESSAGE_TEMPLATE` * constant. * @returns A string representing the format instructions for the plan. */ getFormatInstructions() { return prompt_js_1.PLANNER_SYSTEM_PROMPT_MESSAGE_TEMPLATE; } } exports.PlanOutputParser = PlanOutputParser;