Packages
Loading
Loading
Packages
@loop-engine/actors models all five actor categories and provides transition authorization + evidence utilities.
1npm install @loop-engine/actors1interface HumanActor extends ActorRef {2 type: "human"3 userId: string4 displayName: string5 roles?: string[]6}7 8interface AutomationActor extends ActorRef {9 type: "automation"10 serviceId: string11 version?: string12}13 14interface AIAgentActor extends ActorRef {15 type: "ai-agent"16 modelId: string17 provider: string18 confidence?: number19 promptHash?: string20 toolsUsed?: string[]21}1canActorExecuteTransition(2 actor: Actor,3 transition: TransitionSpec,4 constraints?: AIActorConstraints5): { authorized: boolean; requiresApproval: boolean; reason?: string }canActorExecuteTransition() validates transition.allowedActors and optional AI safety constraints (requiresHumanApprovalFor, maxConsecutiveAITransitions, and canExecuteTransitions).
1import { canActorExecuteTransition } from "@loop-engine/actors"2 3const auth = canActorExecuteTransition(agentActor, transition)4if (!auth.authorized) {5 console.log(auth.reason)6}1buildActorEvidence(actor: Actor, baseEvidence: Evidence): EvidenceThe helper always adds:
actor_typeactor_idFor ai-agent it also adds ai_agent_id and preserves ai_confidence and ai_reasoning when present.
1import { buildActorEvidence } from "@loop-engine/actors"2 3const evidence = buildActorEvidence(aiActor, {4 ai_confidence: 0.82,5 ai_reasoning: "Demand spike at DC-East",6 recommended_qty: 5007})