def run
import bendvy-ecs-core@0.1.0.4/ordinary_owned_event_family_reader_query.bend as OrdinaryOwnedEventFamilyReaderQueryimport Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/owner_product.bend as Product
import bendvy-ecs-core@0.1.0.4/owned_event_log.bend as Log
import bendvy-ecs-core@0.1.0.4/ordinary_owned_event.bend as Pub
import bendvy-ecs-core@0.1.0.4/ordinary_owned_event_family_reader_binding.bend as Setup
import bendvy-ecs-core@0.1.0.4/owned_event_family_reader_query.bend as Core
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
import bendvy-ecs-core@0.1.0.4/event_stream.bend as Stream
import bendvy-ecs-core@0.1.0.4/event_family_runtime.bend as FR
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
46# Resolve unread payload keys in order, project each through the confined request,
47# restore its log owner, then traverse current live query handles with declared
48# query caps. All event/row ECS writes share one transaction. Args and returned
49# Observation owners remain in Reply; failure clears Data outputs and rolls back
50# recorded ECS edits, not arbitrary mutations made by trusted projectors.
51# Uses registry cursor for lifecycle selection; success advances it to World tick.
52# Semantic Reply failure preserves unread stream position under failed-reader rules;
53# transport Succeeded alone is not semantic success. lagged records retention loss.
54def run(~S:Data,~C:Type,~R:Type,~P:Type,~Rest:Type,~E:Data,~Domains:Data,~F:Type,~path:Product.Lens<R,Log.Log<P>,Rest>,~inject:Nat -> E,~select:List<&2,E> -> List<&2,Nat>,~identity:Pub.Domain<S,P>,~make:Domains -> Nat -> F,~sync:F -> Nat -> List<&2,E> -> F,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,E> -> F & List<&2,E>,~inventory:F -> F & List<&2,String>,~take:F -> F & Stream.Stream<S,Nat>,~put:F -> Stream.Stream<S,Nat> -> F,~descriptor:Setup.Setup<S,R,P,Rest,E,Domains,F,path,inject,select,identity,make,sync,frame,retain,inventory,take,put>,~Owners:Type,~Request:Type,~Projection:Data,~Args:Type,~Observation:Type,~U:Data,~Out:Data,~Ops:Type -> Type,~at:P -> Request -> P & Projection,~project:@-H:Type -> @-read:Cap.Request<H,Request,Projection> -> H -> Args -> H & Core.Projected<Args,Observation,U>,~query:Decl.Declaration<S,Q.Frame<S,C,R,E>,Ops(Q.Frame<S,C,R,E>)>,~body:@-H:Type -> @-caps:Ops(H) -> Observation -> Args -> H -> H & (Observation & (Args & (T.Outcome<U> & Out))),runtime:Route.Runtime<S,C,R,E,FR.State<E,F,Owners>>,reader:Route.Reader<S,Nat,FR.State<E,F,Owners>,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put)>,registry:Sys.Registry<S,C,R,E,Ev.Input<Nat,Args & Maybe<&2,Tick.Tick>>,Unit,Core.Reply<Args,Observation,U,Out>,Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body)>,args:Args) -> Route.RunResult<S,C,R,E,Nat,FR.State<E,F,Owners>,Args & Maybe<&2,Tick.Tick>,Unit,Core.Reply<Args,Observation,U,Out>,FR.take(~S,~Nat,~E,~F,~Owners,~take),FR.put(~S,~Nat,~E,~F,~Owners,~put),Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body)>:
55 run_observed(~S,~C,~R,~P,~Rest,~E,~Domains,~F,~path,~inject,~select,~identity,~make,~sync,~frame,~retain,~inventory,~take,~put,~descriptor,~Owners,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body,runtime,reader,args,Sys.cursor(~S,~C,~R,~E,~Ev.Input<Nat,Args & Maybe<&2,Tick.Tick>>,~Unit,~Core.Reply<Args,Observation,U,Out>,~Core.runner(~S,~C,~R,~P,~Rest,~E,~path,~Request,~Projection,~Args,~Observation,~U,~Out,~Ops,~at,~project,~query,~body),registry))
Uses (29)
Used by (0)
No other definition uses this definition.