{"version":3,"sources":["../../../../src/agents/requirement/requirements/requirement.ts"],"names":["Requirement","name","state","enabled","middlewares","_priority","priority","value","ValueError","emitter","Emitter","root","child","namespace","toCamelCase","creator","run","RunContext","enter","signal","undefined","params","context","_run","init","tools","_","emit","clone","instance","Object","create","getPrototypeOf","enumerable","RequirementError","FrameworkError","message","requirement","cause","isFatal","isRetryable"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBO,MAAeA,WAAAA,CAAAA;AAAAA,EAAAA;;;AACbC,EAAAA,IAAAA;AACAC,EAAAA,KAAAA,GAA6B,EAAC;EAC9BC,OAAAA,GAAU,IAAA;AACVC,EAAAA,WAAAA,GAA6C,EAAA;EAE1CC,SAAAA,GAAY,EAAA;AAEtB,EAAA,WAAA,CAAYJ,IAAAA,EAAe;AACzB,IAAA,IAAA,CAAKA,IAAAA,GAAOA,IAAAA,IAAQ,IAAA,CAAK,WAAA,CAAYA,IAAAA;AACvC,EAAA;AAEA,EAAA,IAAIK,QAAAA,GAAmB;AACrB,IAAA,OAAO,IAAA,CAAKD,SAAAA;AACd,EAAA;AAEA,EAAA,IAAIC,SAASC,KAAAA,EAAe;AAC1B,IAAA,IAAIA,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,IAAIC,sBAAW,sCAAA,CAAA;AACvB,IAAA;AACA,IAAA,IAAA,CAAKH,SAAAA,GAAYE,KAAAA;AACnB,EAAA;AAEA,EAAA,IACIE,OAAAA,GAAyC;AAC3C,IAAA,OAAOC,mBAAAA,CAAQC,KAAKC,KAAAA,CAAM;MACxBC,SAAAA,EAAW;AAAC,QAAA,aAAA;AAAeC,QAAAA,kBAAAA,CAAY,KAAKb,IAAI;;MAChDc,OAAAA,EAAS;KACX,CAAA;AACF,EAAA;AAEAC,EAAAA,GAAAA,CAAId,KAAAA,EAAiC;AACnC,IAAA,OAAOe,sBAAAA,CAAWC,MAChB,IAAA,EACA;MAAEC,MAAAA,EAAQC,MAAAA;MAAWC,MAAAA,EAAQ;AAACnB,QAAAA;;AAAgB,KAAA,EAC9C,OAAOoB,OAAAA,KAAAA;AACL,MAAA,OAAO,MAAM,IAAA,CAAKC,IAAAA,CAAKrB,KAAAA,EAAOoB,OAAAA,CAAAA;IAChC,CAAA,CAAA;AAEJ,EAAA;EAIA,MAAME,IAAAA,CAAKC,OAAkBC,CAAAA,EAAmC;AAC9D,IAAA,MAAM,IAAA,CAAKjB,OAAAA,CAAQkB,IAAAA,CAAK,MAAA,EAAQ;AAAEF,MAAAA;KAAM,CAAA;AAC1C,EAAA;AAEA,EAAA,MAAMG,KAAAA,GAAuB;AAC3B,IAAA,MAAMC,WAAWC,MAAAA,CAAOC,MAAAA,CAAOD,MAAAA,CAAOE,cAAAA,CAAe,IAAI,CAAA,CAAA;AACzDH,IAAAA,QAAAA,CAAS5B,OAAO,IAAA,CAAKA,IAAAA;AACrB4B,IAAAA,QAAAA,CAASvB,WAAW,IAAA,CAAKA,QAAAA;AACzBuB,IAAAA,QAAAA,CAAS1B,UAAU,IAAA,CAAKA,OAAAA;AACxB0B,IAAAA,QAAAA,CAAS3B,KAAAA,GAAQ;AAAE,MAAA,GAAG,IAAA,CAAKA;AAAM,KAAA;AACjC2B,IAAAA,QAAAA,CAASzB,WAAAA,GAAc;SAAI,IAAA,CAAKA;;AAChC,IAAA,OAAOyB,QAAAA;AACT,EAAA;AACF;;;IAjCWI,UAAAA,EAAY;;;;;AAoChB,MAAMC,yBAAyBC,yBAAAA,CAAAA;AAAAA,EAAAA;;;;EACpC,WAAA,CACEC,OAAAA,EACgBC,WAAAA,EAChBC,KAAAA,EACAhB,OAAAA,EACA;AACA,IAAA,KAAA,CAAMc,SAASE,KAAAA,GAAQ;AAACA,MAAAA;QAASlB,MAAAA,EAAW;MAC1CmB,OAAAA,EAAS,IAAA;MACTC,WAAAA,EAAa,KAAA;AACblB,MAAAA;KACF,CAAA,EAAA,KARgBe,WAAAA,GAAAA,WAAAA;AASlB,EAAA;AACF","file":"requirement.cjs","sourcesContent":["/**\n * Copyright 2025 © BeeAI a Series of LF Projects, LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AnyTool } from \"@/tools/base.js\";\nimport { MiddlewareType, RunContext } from \"@/context.js\";\nimport { Callback, Emitter } from \"@/emitter/emitter.js\";\nimport { FrameworkError, ValueError } from \"@/errors.js\";\nimport { toCamelCase } from \"remeda\";\nimport type { RequirementAgentRunState } from \"@/agents/requirement/types.js\";\nimport { Cache } from \"@/cache/decoratorCache.js\";\n\n// Rule definition\nexport interface Rule {\n  target: string;\n  allowed: boolean;\n  reason?: string;\n  preventStop: boolean;\n  forced: boolean;\n  hidden: boolean;\n}\n\n// Base Requirement class\nexport abstract class Requirement {\n  public name: string;\n  public state: Record<string, any> = {};\n  public enabled = true;\n  public middlewares: MiddlewareType<typeof this>[] = [];\n\n  protected _priority = 10;\n\n  constructor(name?: string) {\n    this.name = name || this.constructor.name;\n  }\n\n  get priority(): number {\n    return this._priority;\n  }\n\n  set priority(value: number) {\n    if (value <= 0) {\n      throw new ValueError(\"Priority must be a positive integer.\");\n    }\n    this._priority = value;\n  }\n\n  @Cache({ enumerable: false })\n  get emitter(): Emitter<RequirementCallbacks> {\n    return Emitter.root.child({\n      namespace: [\"requirement\", toCamelCase(this.name)],\n      creator: this,\n    });\n  }\n\n  run(state: RequirementAgentRunState) {\n    return RunContext.enter(\n      this,\n      { signal: undefined, params: [state] as const },\n      async (context) => {\n        return await this._run(state, context);\n      },\n    );\n  }\n\n  abstract _run(state: RequirementAgentRunState, _: RunContext<typeof this>): Promise<Rule[]>;\n\n  async init(tools: AnyTool[], _: RunContext<any>): Promise<void> {\n    await this.emitter.emit(\"init\", { tools });\n  }\n\n  async clone(): Promise<this> {\n    const instance = Object.create(Object.getPrototypeOf(this));\n    instance.name = this.name;\n    instance.priority = this.priority;\n    instance.enabled = this.enabled;\n    instance.state = { ...this.state };\n    instance.middlewares = [...this.middlewares];\n    return instance;\n  }\n}\n\n// Requirement error\nexport class RequirementError extends FrameworkError {\n  constructor(\n    message: string,\n    public readonly requirement?: Requirement,\n    cause?: Error,\n    context?: Record<string, any>,\n  ) {\n    super(message, cause ? [cause] : undefined, {\n      isFatal: true,\n      isRetryable: false,\n      context,\n    });\n  }\n}\n\nexport interface RequirementCallbacks {\n  init: Callback<{ tools: AnyTool[] }>;\n}\n"]}