Facade for effect policy, filtering, and state/directive application.
Summary
Functions
Applies filtered effects to an agent and returns directives.
Returns the default effect policy.
Filters result effects by policy.
Intersects agent and strategy policies (strategy may only narrow).
Builds a normalized policy struct.
Normalizes result envelope to canonical triple tuple.
Resolves an effect policy from context.
Types
@type policy_input() :: Jido.AI.Effects.Policy.t() | map() | keyword() | nil
Functions
@spec apply_result(Jido.Agent.t(), term(), policy_input()) :: {Jido.Agent.t(), [term()], Jido.AI.Effects.Applier.stats(), Jido.AI.Effects.Applier.result_tuple()}
Applies filtered effects to an agent and returns directives.
@spec default_policy() :: Jido.AI.Effects.Policy.t()
Returns the default effect policy.
@spec filter_result(term(), policy_input()) :: {Jido.AI.Effects.Applier.result_tuple(), Jido.AI.Effects.Applier.stats()}
Filters result effects by policy.
@spec intersect_policies(policy_input(), policy_input()) :: Jido.AI.Effects.Policy.t()
Intersects agent and strategy policies (strategy may only narrow).
@spec new_policy(policy_input()) :: Jido.AI.Effects.Policy.t()
Builds a normalized policy struct.
@spec normalize_result(term()) :: Jido.AI.Effects.Applier.result_tuple()
Normalizes result envelope to canonical triple tuple.
@spec policy_from_context(map(), policy_input()) :: Jido.AI.Effects.Policy.t()
Resolves an effect policy from context.
Supports maps with atom or string keys.