{"version":3,"sources":["../../../../src/agents/react/runners/base.ts"],"names":["BaseRunner","Serializable","memory","iterations","failedAttemptsCounter","input","options","run","RetryCounter","execution","totalMaxRetries","AgentError","createIteration","meta","iteration","length","maxIterations","Infinity","isFatal","isRetryable","context","map","state","emitter","child","groupId","llm","signal","push","init","initMemory","templates","overrides","mapObj","defaultTemplates","key","defaultTemplate","override","PromptTemplate","createSnapshot","shallowCopy","loadSnapshot","snapshot","Object","assign","enumerable"],"mappings":"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","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Serializable } from \"@/internals/serializable.js\";\nimport type { ReActAgentTemplates } from \"@/agents/react/types.js\";\nimport {\n  ReActAgentRunIteration,\n  ReActAgentCallbacks,\n  ReActAgentIterationToolResult,\n  ReActAgentMeta,\n  ReActAgentRunInput,\n  ReActAgentRunOptions,\n} from \"@/agents/react/types.js\";\nimport type { ReActAgent, ReActAgentInput } from \"@/agents/react/agent.js\";\nimport { RetryCounter } from \"@/internals/helpers/counter.js\";\nimport { AgentError } from \"@/agents/base.js\";\nimport { shallowCopy } from \"@/serializer/utils.js\";\nimport { BaseMemory } from \"@/memory/base.js\";\nimport { GetRunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\nimport { mapObj } from \"@/internals/helpers/object.js\";\nimport { PromptTemplate } from \"@/template.js\";\n\nexport interface ReActAgentRunnerLLMInput {\n  meta: ReActAgentMeta;\n  signal: AbortSignal;\n  emitter: Emitter<ReActAgentCallbacks>;\n}\n\nexport interface ReActAgentRunnerToolInput {\n  state: ReActAgentIterationToolResult;\n  meta: ReActAgentMeta;\n  signal: AbortSignal;\n  emitter: Emitter<ReActAgentCallbacks>;\n}\n\nexport abstract class BaseRunner extends Serializable {\n  public memory!: BaseMemory;\n  public readonly iterations: ReActAgentRunIteration[] = [];\n  protected readonly failedAttemptsCounter: RetryCounter;\n\n  constructor(\n    protected readonly input: ReActAgentInput,\n    protected readonly options: ReActAgentRunOptions,\n    protected readonly run: GetRunContext<ReActAgent>,\n  ) {\n    super();\n    this.failedAttemptsCounter = new RetryCounter(options?.execution?.totalMaxRetries, AgentError);\n  }\n\n  async createIteration() {\n    const meta: ReActAgentMeta = { iteration: this.iterations.length + 1 };\n    const maxIterations = this.options?.execution?.maxIterations ?? Infinity;\n\n    if (meta.iteration > maxIterations) {\n      throw new AgentError(\n        `Agent was not able to resolve the task in ${maxIterations} iterations.`,\n        [],\n        {\n          isFatal: true,\n          isRetryable: false,\n          context: { iterations: this.iterations.map((iteration) => iteration.state) },\n        },\n      );\n    }\n\n    const emitter = this.run.emitter.child({ groupId: `iteration-${meta.iteration}` });\n    const iteration = await this.llm({ emitter, signal: this.run.signal, meta });\n    this.iterations.push(iteration);\n\n    return {\n      emitter,\n      state: iteration.state,\n      meta,\n      signal: this.run.signal,\n    };\n  }\n\n  async init(input: ReActAgentRunInput) {\n    this.memory = await this.initMemory(input);\n  }\n\n  abstract llm(input: ReActAgentRunnerLLMInput): Promise<ReActAgentRunIteration>;\n\n  abstract tool(input: ReActAgentRunnerToolInput): Promise<{ output: string; success: boolean }>;\n\n  public abstract get defaultTemplates(): ReActAgentTemplates;\n\n  @Cache({ enumerable: false })\n  public get templates(): ReActAgentTemplates {\n    const overrides = this.input.templates ?? {};\n\n    return mapObj(this.defaultTemplates)(\n      (key, defaultTemplate: ReActAgentTemplates[typeof key]) => {\n        const override = overrides[key] ?? defaultTemplate;\n        if (override instanceof PromptTemplate) {\n          return override;\n        }\n        return override(defaultTemplate) ?? defaultTemplate;\n      },\n    );\n  }\n\n  protected abstract initMemory(input: ReActAgentRunInput): Promise<BaseMemory>;\n\n  createSnapshot() {\n    return {\n      input: shallowCopy(this.input),\n      options: shallowCopy(this.options),\n      memory: this.memory,\n      failedAttemptsCounter: this.failedAttemptsCounter,\n    };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n"]}