:: :::: /hook/core/talk/app :: /? 314 /- *radio :: :::: :: !: [sed=!>(.) .] => |% ++ axle :: application state $: cur=@ud :: message cursor src=(set station) :: config sources == :: ++ work :: user action $% [%all p=mess] :: say [%back p=?(%da %dr %ud) q=@] :: backlog [%def p=mess] :: use current prompt [%how ~] :: help [%join p=station] :: subscribe /=main to [%host p=span] :: create /=foo [%priv p=@p q=mess] :: private [%who ~] :: who == :: ++ iron :: terminal output $% [%prompt p=cord q=prom r=cord] :: prompt [%tang p=(list tank)] :: prettyprintable [%txt p=cord] :: simple text == ++ mess $% [%do p=@t] [%exp p=@t q=tank] [%say p=@t] == ++ gift $% [%mean ares] [%nice ~] [%rush iron] [%rust iron] == ++ hapt ,[p=ship q=path] ++ move ,[p=bone q=(mold note gift)] ++ note $? $: %g $% [%mess p=hapt q=ship r=cage] [%nuke p=hapt q=ship] [%show p=hapt q=ship r=path] == == == ++ sign $? $: %g $% [%mean p=ares] [%nice ~] $: %rush $= p $% [%txt p=cord] == == $: %rust $= p $% [%txt p=cord] [%radio-report p=report] == == == == == -- !: :::: :: =| [our=@p lat=@da] |% ++ talk =< %+ cook |=(a=work a) ;~ pose (cold [%how ~] wut) (cold [%who ~] tis) (stag %back dat) (stag %priv ;~(plug ;~(pfix sig fed:ag) ;~(pfix ace mess))) (stag %all ;~(pfix pam mess)) (comd %join stati) (comd %host urs:ab) (stag %def mess) == |% ++ peach :: either ++each branch |* a=_[rule rule] |= tub=nail ^- (like (each ,_(wonk (-.a)) ,_(wonk (+.a)))) %. tub ;~(pose (stag %& -.a) (stag %| +.a)) :: ++ comd :: ! command |* [a=@tas b=_rule] %- full ;~((glue (plus ace)) ;~(pfix zap (cold a (jest a))) b) :: :: ++ dat %+ sear |= p=coin ?. ?=([%$ ?(%da %dr %ud) @] p) ~ (some +.p) ;~(pfix bas bas (star ace) nuck:so) :: ++ expn %- sear :_ text |= a=@t ^- (unit ,[p=@t q=tank]) =+ hun=(rush a wide:(vang | [&1:% &2:% (scot %da lat) |3:%])) ?~ hun ~ ?~(a ~ [~ a (sell (slap sed u.hun))]) :: ++ mess ^- $+(nail (like ^mess)) ;~ pose (stag %do ;~(pfix pat text)) (stag %exp ;~(pfix hax expn)) (stag %do (full (easy ''))) (stag %say text) == :: ++ text (boss 256 (star prn)) ++ stati ^- $+(nail (like station)) %+ peach ;~(plug ;~(pose (cold our tis) (ifix sig^fas fed:ag)) urs:ab) %+ sear (soft partner) ;~((glue fas) sym (cook crip (star prn))) :: XX [a-z0-9_]{1,15} -- -- !: :::: :: |_ [hid=hide axle] :: ++ pour-shell |= [ost=bone txt=cord] ^- [(list move) _+>] ?: =(0 txt) [~ +>.$] =+ rey=(rush txt talk(lat lat.hid, our our.hid)) ?~ rey [(send /out %give %rush %tang [%leaf "invalid input"] ~) +>.$] =- :_ -> :_ ~ ^- move :* ost %pass /command %g %mess [our.hid /rodeo] our.hid [%radio-command !>(cod)] == ^- [cod=command _+>.$] ?+ -.u.rey !! %def ?> ?=(%say -.p.u.rey) =- [[%publish - ~] +>.$] ^- thought :* (shaf %foo eny.hid) [[`station`[%& our.hid %main] %pending] ~ ~] `statement`[lat.hid p.u.rey] == :: %host [[%design p.u.rey ~ `config`[~ [%| ~]]] +>.$] :: %join =. src (~(put in src) p.u.rey) [[%design %main ~ `config`[src [%| ~]]] +>.$] == :: ++ pour-report |= [ost=bone rep=report] ^- [(list move) _+>] ~& [%pour-report rep] ?+ -.rep !! %config `+>.$(src sources.rep) %grams :_ +>.$ %- zing ^- (list (list move)) %+ turn `(list telegram)`q.rep |= gam=telegram =* sta r.q.gam ?+ -.q.sta !! %say (send /out %give %rush %txt p.q.sta) == == :: ++ peer |= [ost=bone you=ship pax=path] ^- [(list move) _+>] :_ +>.$ ?~ pax !! ?+ i.pax !! %out [ost %give %rust %prompt '& ' %text '']~ == :: ++ pour |= [ost=bone pax=path sih=*] ^- [(list move) _+>] =+ sih=((hard sign) sih) ?~ pax ~& talk-pour-strange-path/pax !! ?+ i.pax ~& talk-pour-strange-path/pax !! %cmd-in ?- +<.sih %nice [~ +>.$] %mean [(send /out %give +.sih) +>.$] ?(%rush %rust) ?> ?=(%txt -.p.sih) (pour-shell ost p.p.sih) == :: %command ?> ?=(?(%mean %nice) +<.sih) [~ +>.$] :: ?(%am %fm) ~& talk-pour/sih ?+ &2.sih !! ?(%nice %mean) [~ +>.$] %rust ?>(?=(%radio-report &3.sih) (pour-report ost p.p.sih)) == == :: ++ poke-talk-args |= [ost=bone you=ship arg=~] ^- [(list move) _+>] :_ +> :* [ost %pass /cmd-in %g %show [our.hid +.imp.hid] you /in/[-.imp.hid]] ^- move :* ost %pass /fm %g %show [our.hid /rodeo] our.hid /fm/main == ^- move :* ost %pass /am %g %show [our.hid /rodeo] our.hid /am/main == (send /out %give %rush %prompt '& ' %text '') == :: ++ send |= [pax=path msg=(mold note gift)] ^- (list move) :: ~& [%send pus.hid] %+ turn (~(tap in (~(get ju pus.hid) pax))) |=(ost=bone [ost msg]) --