:: Print what your agent is doing. :: /- verb :: |= [loud=? =agent:gall] =| bowl-print=_| ^- agent:gall |^ !. |_ =bowl:gall +* this . ag ~(. agent bowl) :: ++ on-init ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-init")) =^ cards agent on-init:ag [[(emit-event %on-init ~) cards] this] :: ++ on-save ^- vase %- (print bowl |.("{<dap.bowl>}: on-save")) on-save:ag :: ++ on-load |= old-state=vase ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-load")) =^ cards agent (on-load:ag old-state) [[(emit-event %on-load ~) cards] this] :: ++ on-poke |= [=mark =vase] ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-poke with mark {<mark>}")) ?: ?=(%verb mark) ?- !<(?(%loud %bowl) vase) %loud `this(loud !loud) %bowl `this(bowl-print !bowl-print) == =^ cards agent (on-poke:ag mark vase) [[(emit-event %on-poke mark) cards] this] :: ++ on-watch |= =path ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-watch on path {<path>}")) =^ cards agent ?: ?=([%verb %events ~] path) [~ agent] (on-watch:ag path) [[(emit-event %on-watch path) cards] this] :: ++ on-leave |= =path ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-leave on path {<path>}")) ?: ?=([%verb %event ~] path) [~ this] =^ cards agent (on-leave:ag path) [[(emit-event %on-leave path) cards] this] :: ++ on-peek |= =path ^- (unit (unit cage)) %- (print bowl |.("{<dap.bowl>}: on-peek on path {<path>}")) (on-peek:ag path) :: ++ on-agent |= [=wire =sign:agent:gall] ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-agent on wire {<wire>}, {<-.sign>}")) =^ cards agent (on-agent:ag wire sign) [[(emit-event %on-agent wire -.sign) cards] this] :: ++ on-arvo |= [=wire =sign-arvo] ^- (quip card:agent:gall agent:gall) %- %+ print bowl |. "{<dap.bowl>}: on-arvo on wire {<wire>}, {<[- +<]:sign-arvo>}" =^ cards agent (on-arvo:ag wire sign-arvo) [[(emit-event %on-arvo wire [- +<]:sign-arvo) cards] this] :: ++ on-fail |= [=term =tang] ^- (quip card:agent:gall agent:gall) %- (print bowl |.("{<dap.bowl>}: on-fail with term {<term>}")) =^ cards agent (on-fail:ag term tang) [[(emit-event %on-fail term) cards] this] -- :: ++ print |= [=bowl:gall render=(trap tape)] ^+ same =? . bowl-print %- (slog >bowl< ~) . ?. loud same %- (slog [%leaf $:render] ~) same :: ++ emit-event |= =event:verb ^- card:agent:gall [%give %fact ~[/verb/events] %verb-event !>(event)] --