{"version":3,"sources":["../../src/agents/base.ts"],"names":["AgentError","FrameworkError","BaseAgent","Serializable","isRunning","run","input","options","RunContext","enter","signal","params","context","console","log","agentType","constructor","name","_run","e","error","stack","Error","undefined","cause","message","String","middleware","INSTRUMENTATION_ENABLED","createTelemetryMiddleware","doNothing","destroy","emitter","meta","description","tools","createSnapshot","loadSnapshot","snapshot","Object","assign"],"mappings":";;;;;;;;;;;AA0BO,MAAMA,mBAAmBC,yBAAAA,CAAAA;EA1BhC;;;AA0BgD;AAMzC,MAAeC,kBAIZC,6BAAAA,CAAAA;EApCV;;;EAqCYC,SAAY,GAAA,KAAA;EAIfC,GACF,CAAA,GAAA,CAACC,KAAOC,EAAAA,OAAAA,CAGX,EAAA;AACA,IAAA,IAAI,KAAKH,SAAW,EAAA;AAClB,MAAM,MAAA,IAAIJ,WAAW,2BAAA,CAAA;AACvB;AAEA,IAAOQ,OAAAA,sBAAAA,CAAWC,MAChB,IACA,EAAA;AAAEC,MAAAA,MAAAA,EAAQH,OAASG,EAAAA,MAAAA;MAAQC,MAAQ,EAAA;AAACL,QAAAA,KAAAA;AAAOC,QAAAA;;AAAkB,KAAA,EAC7D,OAAOK,OAAAA,KAAAA;AACL,MAAI,IAAA;AACFC,QAAAA,OAAAA,CAAQC,IAAI,0BAA4B,EAAA;AACtCC,UAAAA,SAAAA,EAAW,KAAKC,WAAYC,CAAAA,IAAAA;AAC5BX,UAAAA,KAAAA;AACAC,UAAAA;SACF,CAAA;AACA,QAAA,IAAA,CAAKH,SAAY,GAAA,IAAA;AAEjB,QAAA,OAAO,MAAM,IAAA,CAAKc,IAAKZ,CAAAA,KAAAA,EAAOC,SAASK,OAAAA,CAAAA;AACzC,OAAA,CAAA,OAASO,CAAG,EAAA;AACVN,QAAAA,OAAAA,CAAQO,MAAM,kBAAoB,EAAA;UAChCA,KAAOD,EAAAA,CAAAA;UACPE,KAAOF,EAAAA,CAAAA,YAAaG,KAAQH,GAAAA,CAAAA,CAAEE,KAAQE,GAAAA,MAAAA;UACtCC,KAAOL,EAAAA,CAAAA,YAAaG,KAAQH,GAAAA,CAAAA,CAAEK,KAAQD,GAAAA;SACxC,CAAA;AAEA,QAAA,IAAIJ,aAAanB,UAAY,EAAA;AAC3B,UAAMmB,MAAAA,CAAAA;SACD,MAAA;AACL,UAAA,MAAM,IAAInB,UAAAA,CACR,CAAyB,sBAAA,EAAA,IAAA,CAAKgB,YAAYC,IAAI,CAAA,EAAA,EAAKE,CAAaG,YAAAA,KAAAA,GAAQH,CAAEM,CAAAA,OAAAA,GAAUC,MAAOP,CAAAA,CAAAA,CAAAA,CAC3F,CAAA,EAAA;AAACA,YAAAA;AAAE,WAAA,CAAA;AAEP;OACF,SAAA;AACEN,QAAAA,OAAAA,CAAQC,IAAI,qBAAA,CAAA;AACZ,QAAA,IAAA,CAAKV,SAAY,GAAA,KAAA;AACnB;AACF,KAAA,EACAuB,UAAWC,CAAAA,kCAAAA,GAA0BC,uDAAAA,EAAAA,GAA8BC,kBAAAA,CAAAA;AACvE;EAQAC,OAAU,GAAA;AACR,IAAA,IAAA,CAAKC,QAAQD,OAAO,EAAA;AACtB;AAKA,EAAA,IAAWE,IAAkB,GAAA;AAC3B,IAAO,OAAA;MACLhB,IAAM,EAAA,IAAA,CAAKD,YAAYC,IAAQ,IAAA,WAAA;MAC/BiB,WAAa,EAAA,EAAA;AACbC,MAAAA,KAAAA,EAAO;AACT,KAAA;AACF;EAEAC,cAAiB,GAAA;AACf,IAAO,OAAA;MAAEhC,SAAW,EAAA;AAAM,KAAA;AAC5B;AAEAiC,EAAAA,YAAAA,CAAaC,QAAkD,EAAA;AAC7DC,IAAOC,MAAAA,CAAAA,MAAAA,CAAO,MAAMF,QAAAA,CAAAA;AACtB;AACF","file":"base.cjs","sourcesContent":["/**\n * Copyright 2025 IBM Corp.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FrameworkError } from \"@/errors.js\";\nimport { AgentMeta } from \"@/agents/types.js\";\nimport { Serializable } from \"@/internals/serializable.js\";\nimport { GetRunContext, RunContext } from \"@/context.js\";\nimport { Emitter } from \"@/emitter/emitter.js\";\nimport { createTelemetryMiddleware } from \"@/instrumentation/create-telemetry-middleware.js\";\nimport { INSTRUMENTATION_ENABLED } from \"@/instrumentation/config.js\";\nimport { doNothing } from \"remeda\";\nimport { BaseMemory } from \"@/memory/base.js\";\n\nexport class AgentError extends FrameworkError {}\n\nexport interface BaseAgentRunOptions {\n  signal?: AbortSignal;\n}\n\nexport abstract class BaseAgent<\n  TInput,\n  TOutput,\n  TOptions extends BaseAgentRunOptions = BaseAgentRunOptions,\n> extends Serializable {\n  protected isRunning = false;\n\n  public abstract readonly emitter: Emitter<unknown>;\n\n  public run(\n    ...[input, options]: Partial<TOptions> extends TOptions\n      ? [input: TInput, options?: TOptions]\n      : [input: TInput, options: TOptions]\n  ) {\n    if (this.isRunning) {\n      throw new AgentError(\"Agent is already running!\");\n    }\n\n    return RunContext.enter(\n      this,\n      { signal: options?.signal, params: [input, options] as const },\n      async (context) => {\n        try {\n          console.log('Starting agent run with:', { \n            agentType: this.constructor.name,\n            input,\n            options \n          });\n          this.isRunning = true;\n          // @ts-expect-error\n          return await this._run(input, options, context);\n        } catch (e) {\n          console.error('Agent run error:', {\n            error: e,\n            stack: e instanceof Error ? e.stack : undefined,\n            cause: e instanceof Error ? e.cause : undefined\n          });\n          \n          if (e instanceof AgentError) {\n            throw e;\n          } else {\n            throw new AgentError(\n              `Error has occurred in ${this.constructor.name}: ${e instanceof Error ? e.message : String(e)}`,\n              [e]\n            );\n          }\n        } finally {\n          console.log('Agent run completed');\n          this.isRunning = false;\n        }\n      },\n    ).middleware(INSTRUMENTATION_ENABLED ? createTelemetryMiddleware() : doNothing());\n  }\n\n  protected abstract _run(\n    input: TInput,\n    options: TOptions,\n    run: GetRunContext<typeof this>,\n  ): Promise<TOutput>;\n\n  destroy() {\n    this.emitter.destroy();\n  }\n\n  public abstract set memory(memory: BaseMemory);\n  public abstract get memory(): BaseMemory;\n\n  public get meta(): AgentMeta {\n    return {\n      name: this.constructor.name ?? \"BaseAgent\",\n      description: \"\",\n      tools: [],\n    };\n  }\n\n  createSnapshot() {\n    return { isRunning: false };\n  }\n\n  loadSnapshot(snapshot: ReturnType<typeof this.createSnapshot>) {\n    Object.assign(this, snapshot);\n  }\n}\n"]}