mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-24 10:33:22 +03:00
Merge branch 'talk-split' into remaint-merge-talk
Uncompiled. Untested. # Conflicts: # app/talk.hoon # lib/helm.hoon # lib/talk.hoon # mar/talk/command.hoon # mar/talk/report.hoon # mar/talk/telegrams.hoon # sur/talk.hoon
This commit is contained in:
commit
bb5150819c
2125
app/talk-agent.hoon
Normal file
2125
app/talk-agent.hoon
Normal file
File diff suppressed because it is too large
Load Diff
2116
app/talk-guardian.hoon
Normal file
2116
app/talk-guardian.hoon
Normal file
File diff suppressed because it is too large
Load Diff
2396
app/talk.hoon
2396
app/talk.hoon
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,6 @@
|
||||
:: :: ::
|
||||
/? 310 :: version
|
||||
/- sole
|
||||
/+ talk
|
||||
[. sole]
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
@ -13,11 +12,11 @@
|
||||
++ helm-pith :: helm content
|
||||
$: bur/(unit (pair ship mace:ames)) :: requesting ticket
|
||||
hoc/(map bone helm-session) :: consoles
|
||||
== ::
|
||||
== ::
|
||||
++ helm-session ::
|
||||
$: say/sole-share :: console state
|
||||
mud/(unit (sole-dialog @ud)) :: console dialog
|
||||
== ::
|
||||
== ::
|
||||
:: :: ::
|
||||
:::: :: ::
|
||||
:: :: ::
|
||||
@ -50,7 +49,7 @@
|
||||
$% {$cash wire p/@p q/buck:ames} ::
|
||||
{$conf wire dock $load ship term} ::
|
||||
{$flog wire flog:dill} ::
|
||||
{$funk wire @p @p @} ::
|
||||
{$funk wire @p @p @} ::
|
||||
{$nuke wire ship} ::
|
||||
{$serv wire ?(desk beam)} ::
|
||||
{$poke wire dock pear} ::
|
||||
@ -59,7 +58,6 @@
|
||||
++ move (pair bone card) :: user-level move
|
||||
++ pear :: poke fruit
|
||||
$% {$hood-unsync desk ship desk} ::
|
||||
{$talk-command command:talk} ::
|
||||
{$ask-mail cord} ::
|
||||
{$helm-hi cord} ::
|
||||
== ::
|
||||
@ -70,7 +68,7 @@
|
||||
::
|
||||
++ emit |=(card %_(+> moz [[ost +<] moz])) :: return card
|
||||
++ emil :: return cards
|
||||
|= (list card)
|
||||
|= (list card)
|
||||
^+ +>
|
||||
?~(+< +> $(+< t.+<, +> (emit i.+<)))
|
||||
::
|
||||
@ -99,7 +97,7 @@
|
||||
|= $~ =< abet
|
||||
(emit %flog /heft %crud %hax-heft ~)
|
||||
::
|
||||
++ poke-send-hi
|
||||
++ poke-send-hi
|
||||
|= {her/ship mes/(unit tape)} =< abet
|
||||
%^ emit %poke /helm/hi/(scot %p her)
|
||||
[[her %hood] %helm-hi ?~(mes '' (crip u.mes))]
|
||||
@ -114,7 +112,7 @@
|
||||
(emit %serv /helm/serv top)
|
||||
::
|
||||
++ poke-hi |=(mes/@t abet:(emit %flog /di %text "< {<src>}: {(trip mes)}"))
|
||||
++ poke-atom
|
||||
++ poke-atom
|
||||
|= ato/@
|
||||
=+ len=(scow %ud (met 3 ato))
|
||||
=+ gum=(scow %p (mug ato))
|
||||
@ -150,24 +148,18 @@
|
||||
?> ?=({{@ $~} $~} zaz)
|
||||
`term`p.i.zaz
|
||||
=+ tip=(end 3 1 nam)
|
||||
=+ zus==('z' tip)
|
||||
=+ zus==('z' tip)
|
||||
=+ way=?:(zus (welp top /sys/[nam]) (welp top /sys/vane/[nam]))
|
||||
=+ fil=.^(@ %cx (welp way /hoon))
|
||||
[%flog /reload [%veer ?:(=('z' tip) %$ tip) way fil]]
|
||||
::
|
||||
++ poke-invite :: send invite; fake
|
||||
|= {who/@p myl/@t} =< abet
|
||||
%^ emit %poke /helm/invite
|
||||
:- [our %talk]
|
||||
(said:talk our %helm now eny [%leaf "invited: {<who>} at {(trip myl)}"]~)
|
||||
::
|
||||
++ poke-reset :: reset system
|
||||
|= hood-reset =< abet
|
||||
%- emil
|
||||
%- flop ^- (list card)
|
||||
%- flop ^- (list card)
|
||||
=+ top=`path`/(scot %p our)/home/(scot %da now)/sys
|
||||
=+ hun=.^(@ %cx (welp top /hoon/hoon))
|
||||
=+ arv=.^(@ %cx (welp top /arvo/hoon))
|
||||
=+ arv=.^(@ %cx (welp top /arvo/hoon))
|
||||
:- [%flog /reset [%velo `@t`hun `@t`arv]]
|
||||
:- =+ way=(weld top `path`/zuse)
|
||||
[%flog /reset %veer %$ way .^(@ %cx (welp way /hoon))]
|
||||
@ -190,7 +182,7 @@
|
||||
++ poke-wyll :: hear certificate
|
||||
|= wil/(unit wyll:ames)
|
||||
?> ?=(^ bur)
|
||||
?> ?=(^ wil)
|
||||
?> ?=(^ wil)
|
||||
=< abet
|
||||
%- emil(bur ~)
|
||||
:~ [%cash /helm p.u.bur q.u.bur u.wil]
|
||||
|
218
lib/talk.hoon
218
lib/talk.hoon
@ -1,9 +1,9 @@
|
||||
::
|
||||
:::: /hoon/talk/lib
|
||||
::
|
||||
::
|
||||
:: This file is in the public domain.
|
||||
::
|
||||
/? 310
|
||||
/? 310
|
||||
/- talk
|
||||
::
|
||||
::::
|
||||
@ -11,35 +11,217 @@
|
||||
[. ^talk]
|
||||
|_ bol/bowl:gall
|
||||
++ main :: main story
|
||||
|= our/ship ^- cord
|
||||
=+ can=(clan:title our)
|
||||
|= who/ship
|
||||
^- cord
|
||||
=+ can=(clan:title who)
|
||||
?+ can %porch
|
||||
$czar %court
|
||||
$king %floor
|
||||
==
|
||||
==
|
||||
::
|
||||
::TODO add to zuse?
|
||||
++ true-self
|
||||
|= who/ship
|
||||
?. ?=($earl (clan who)) who
|
||||
(sein who)
|
||||
::
|
||||
++ above
|
||||
|= who/ship
|
||||
?: ?=($czar (clan who)) ~zod
|
||||
(sein who)
|
||||
::
|
||||
::TODO remove when on master, use +- key:by instead
|
||||
++ key-by
|
||||
|* m/(map)
|
||||
=| b/(set _?>(?=(^ m) p.n.m))
|
||||
|- ^+ b
|
||||
?~ m b
|
||||
$(m r.m, b $(m l.m, b (~(put in b) p.n.m)))
|
||||
::
|
||||
++ said-url :: app url
|
||||
|= url/purl:eyre
|
||||
:^ ost.bol %poke /said-url
|
||||
:+ [our.bol %talk] %talk-command
|
||||
^- command
|
||||
:- %publish
|
||||
:_ ~
|
||||
^- thought
|
||||
:+ (shaf %thot eny.bol)
|
||||
[[[%& our.bol (main our.bol)] [*envelope %pending]] ~ ~]
|
||||
[now.bol *bouquet [%app dap.bol (crip (en-purl:html url))]] :: XX
|
||||
:+ [our.bol %talk] %talk-action
|
||||
^- action
|
||||
:+ %phrase
|
||||
[[our.bol (main our.bol)] ~ ~]
|
||||
[%app dap.bol (crip (en-purl:html url))]~ :: XX
|
||||
::
|
||||
++ said :: app message
|
||||
|= {our/@p dap/term now/@da eny/@uvJ mes/(list tank)}
|
||||
:- %talk-command
|
||||
^- command
|
||||
:- %publish
|
||||
:- %talk-action
|
||||
^- action
|
||||
:- %convey
|
||||
|- ^- (list thought)
|
||||
?~ mes ~
|
||||
:_ $(mes t.mes, eny (sham eny mes))
|
||||
^- thought
|
||||
:+ (shaf %thot eny)
|
||||
[[[%& our (main our)] [*envelope %pending]] ~ ~]
|
||||
[now *bouquet [%app dap (crip ~(ram re i.mes))]]
|
||||
[[our (main our)] ~ ~]
|
||||
[now [%app dap (crip ~(ram re i.mes))]]
|
||||
::
|
||||
++ uniq
|
||||
|= eny/@uvJ
|
||||
^- (quid serial eny)
|
||||
[(shaf %serial eny) (shax eny)]
|
||||
::
|
||||
++ change-glyphs ::< ...
|
||||
::>
|
||||
::
|
||||
|= {gys/(jug char (set circle)) bin/? gyf/char cis/(set circle)}
|
||||
^+ gys
|
||||
:: simple bind.
|
||||
?: bin (~(put ju gys) gyf cis)
|
||||
:: unbind all of glyph.
|
||||
?~ cis (~(del by gys) gyf)
|
||||
:: unbind single.
|
||||
(~(del ju gys) gyf cis)
|
||||
::
|
||||
++ change-nicks ::< change nick map
|
||||
::> changes a nickname in a map, adding if it doesn't
|
||||
::> yet exist, removing if the nickname is empty.
|
||||
::
|
||||
|= {nis/(map ship cord) who/ship nic/cord}
|
||||
^+ nis
|
||||
?: =(nic '')
|
||||
(~(del by nis) who)
|
||||
(~(put by nis) who nic)
|
||||
::
|
||||
++ change-config ::< apply config diff
|
||||
::> applies a config diff to the given config.
|
||||
::
|
||||
|= {cof/config dif/diff-config}
|
||||
^+ cof
|
||||
?- -.dif
|
||||
$full cof.dif
|
||||
$caption cof(cap cap.dif)
|
||||
$filter cof(fit fit.dif)
|
||||
$remove cof
|
||||
::
|
||||
$source
|
||||
%= cof
|
||||
src
|
||||
%. cir.dif
|
||||
?: add.dif
|
||||
~(put in src.cof)
|
||||
~(del in src.cof)
|
||||
==
|
||||
::
|
||||
$permit
|
||||
%= cof
|
||||
ses.con
|
||||
%. sis.dif
|
||||
?: add.dif
|
||||
~(uni in ses.con.cof)
|
||||
~(dif in ses.con.cof)
|
||||
==
|
||||
::
|
||||
$secure
|
||||
%= cof
|
||||
sec.con
|
||||
sec.dif
|
||||
::
|
||||
ses.con
|
||||
?. .= ?=(?($white $green) sec.dif)
|
||||
?=(?($white $green) sec.con.cof)
|
||||
~
|
||||
ses.con.cof
|
||||
==
|
||||
==
|
||||
::
|
||||
++ change-status ::< apply status diff
|
||||
::> applies a status diff to the given status.
|
||||
::
|
||||
|= {sat/status dif/diff-status}
|
||||
^+ sat
|
||||
?- -.dif
|
||||
$full sat.dif
|
||||
$presence sat(pec pec.dif)
|
||||
$remove sat
|
||||
::
|
||||
$human
|
||||
%= sat
|
||||
man
|
||||
?- -.dif.dif
|
||||
$full man.dif.dif
|
||||
$true [han.man.sat tru.dif.dif]
|
||||
$handle [han.dif.dif tru.man.sat]
|
||||
==
|
||||
==
|
||||
==
|
||||
::
|
||||
::TODO annotate all!
|
||||
++ depa :: de-pathing core
|
||||
=> |% ++ grub * :: result
|
||||
++ weir (list coin) :: parsed wire
|
||||
++ fist $-(weir grub) :: reparser instance
|
||||
--
|
||||
|%
|
||||
::
|
||||
++ al
|
||||
|* {hed/$-(coin *) tal/fist}
|
||||
|= wir/weir ^+ [*hed *tal]
|
||||
?~ wir !!
|
||||
[(hed i.wir) (tal t.wir)]
|
||||
::
|
||||
++ at
|
||||
|* typ/{@tas (pole @tas)}
|
||||
=+ [i-typ t-typ]=typ
|
||||
|= wer/weir
|
||||
^- (tup:dray i-typ t-typ) ::< ie, (tup %p %tas ~) is {@p @tas}
|
||||
?~ wer !!
|
||||
?~ t-typ
|
||||
?^ t.wer !!
|
||||
((do i-typ) i.wer)
|
||||
:- ((do i-typ) i.wer)
|
||||
(^$(typ t-typ) t.wer)
|
||||
::
|
||||
++ mu :: true unit
|
||||
|* wit/fist
|
||||
|= wer/weir
|
||||
?~(wer ~ (some (wit wer)))
|
||||
::
|
||||
++ af :: object as frond
|
||||
|* buk/(pole {cord fist})
|
||||
|= wer/weir
|
||||
?> ?=({{$$ $tas @tas} *} wer)
|
||||
?~ buk !!
|
||||
=+ [[tag wit] t-buk]=buk
|
||||
?: =(tag q.p.i.wer)
|
||||
[tag ~|(tag+`@tas`tag (wit t.wer))]
|
||||
?~ t-buk ~|(bad-tag+`@tas`q.p.i.wer !!)
|
||||
(^$(buk t-buk) wer)
|
||||
::
|
||||
++ or
|
||||
|* typ/|-($@(@tas {@tas $}))
|
||||
|= con/coin
|
||||
::^- _(snag *@ (turn (limo typ) |*(a/@tas [a (odo:raid a)])))
|
||||
?> ?=($$ -.con)
|
||||
=/ i-typ ?@(typ typ -.typ)
|
||||
?: =(i-typ p.p.con)
|
||||
:- i-typ
|
||||
^- (odo:raid i-typ)
|
||||
q.p.con
|
||||
?@ typ ~|(%bad-odor !!)
|
||||
(^$(typ +.typ) con)
|
||||
::
|
||||
++ do
|
||||
|* typ/@tas
|
||||
=/ typecheck `@tas`typ
|
||||
|= con/coin
|
||||
^- (odo:raid typ)
|
||||
?. ?=($$ -.con) ~|(%not-dime !!)
|
||||
?. =(typ p.p.con) ~|(bad-odor+`@tas`p.p.con !!)
|
||||
q.p.con
|
||||
::
|
||||
++ ul :: null
|
||||
|=(wer/weir ?~(wer ~ !!))
|
||||
::
|
||||
++ un
|
||||
|* wit/$-(coin *)
|
||||
|= wer/weir ^+ *wit
|
||||
?~ wer !!
|
||||
?^ t.wer !!
|
||||
(wit i.wer)
|
||||
--
|
||||
--
|
||||
|
@ -17,8 +17,7 @@
|
||||
|= a/json ^- command
|
||||
=- (need ((of -) a))
|
||||
=< :~ publish+(ar thot)
|
||||
review+(ar thot)
|
||||
design+(ot party+so config+(mu conf) ~)
|
||||
bearing+ul
|
||||
==
|
||||
|%
|
||||
++ op :: parse keys of map
|
||||
@ -42,7 +41,6 @@
|
||||
|* a/fist
|
||||
(cu ~(gas in *(set _(need *a))) (ar a))
|
||||
::
|
||||
++ lake |*(a/_* $-(json (unit a)))
|
||||
++ peach
|
||||
|* a/{rule rule}
|
||||
|= tub/nail
|
||||
@ -57,13 +55,13 @@
|
||||
?~ nit ~
|
||||
(some [u.nit +>->])
|
||||
::
|
||||
::
|
||||
++ thot
|
||||
^- $-(json (unit thought))
|
||||
%- ot :~
|
||||
serial+ceri
|
||||
audience+audi
|
||||
statement+stam
|
||||
date+di
|
||||
speech+spec
|
||||
==
|
||||
::
|
||||
++ ceri
|
||||
@ -72,56 +70,19 @@
|
||||
::
|
||||
++ audi
|
||||
^- $-(json (unit audience))
|
||||
(op parn memb)
|
||||
(as (su circ))
|
||||
::
|
||||
++ auri (op parn (ci (soft presence) so))
|
||||
++ memb (ot [envelope+lope delivery+(ci (soft delivery) so) ~])
|
||||
++ lope (ot [visible+bo sender+(mu (su parn)) ~])
|
||||
::
|
||||
++ parn
|
||||
^- $-(nail (like partner))
|
||||
%+ peach
|
||||
;~((glue fas) ;~(pfix sig fed:ag) urs:ab)
|
||||
%+ sear (soft passport)
|
||||
;~((glue fas) sym urs:ab) :: XX [a-z0-9_]{1,15}
|
||||
::
|
||||
++ speech-or-eval $?(speech {$eval p/@t} {$mor p/(list speech-or-eval)})
|
||||
++ eval
|
||||
|= a/(trel @da bouquet speech-or-eval)
|
||||
^- statement
|
||||
%= a r ^- speech
|
||||
|-
|
||||
?: ?=($mor -.r.a)
|
||||
[%mor (turn p.r.a |=(b/speech-or-eval ^$(r.a b)))]
|
||||
?. ?=($eval -.r.a) r.a
|
||||
=- [%fat tank+- %exp p.r.a]
|
||||
=+ pax=[&1:% &2:% (scot %da p.a) |3:%]
|
||||
p:(mule |.([(sell (slap !>(..zuse) (rain pax p.r.a)))]~))
|
||||
==
|
||||
::
|
||||
++ stam
|
||||
^- $-(json (unit statement))
|
||||
%+ cu eval
|
||||
(ot date+di bouquet+(as (ar so)) speech+spec ~)
|
||||
++ circ
|
||||
^- $-(nail (like circle))
|
||||
;~((glue fas) ;~(pfix sig fed:ag) urs:ab)
|
||||
::
|
||||
++ spec
|
||||
%+ ke *speech-or-eval |.
|
||||
%- of
|
||||
:~ lin+(ot say+bo txt+so ~)
|
||||
url+(su aurf:urlp)
|
||||
eval+so
|
||||
mor+(ar spec)
|
||||
:: exp+(cu |=(a=cord [a ~]) so)
|
||||
:: inv+(ot ship+(su fed:ag) party+(su urs:ab) ~)
|
||||
==
|
||||
::
|
||||
++ conf
|
||||
^- $-(json (unit config))
|
||||
%- ot :~
|
||||
sources+(as (su parn))
|
||||
caption+so
|
||||
:- %cordon
|
||||
(ot posture+(ci (soft posture) so) list+(as (su fed:ag)) ~)
|
||||
^- $-(json (unit speech))
|
||||
%- of :~
|
||||
lin+(ot say+bo txt+so ~)
|
||||
url+(su aurf:urlp)
|
||||
:: exp+(cu |=(a=cord [a ~]) so)
|
||||
:: inv+(ot ship+(su fed:ag) party+(su urs:ab) ~)
|
||||
==
|
||||
--
|
||||
-- --
|
||||
|
@ -9,7 +9,7 @@
|
||||
++ grab
|
||||
|%
|
||||
++ noun {path spur @t}
|
||||
++ json
|
||||
++ json
|
||||
(corl need =>(jo (ot pax+(su fel:stab) sup+(su fel:stab) txt+so ~)))
|
||||
--
|
||||
--
|
||||
|
@ -9,7 +9,7 @@
|
||||
++ grab
|
||||
|%
|
||||
++ noun {path spur @t @t}
|
||||
++ json
|
||||
++ json
|
||||
(corl need =>(jo (ot pax+(su fel:stab) sup+(su fel:stab) hed+so txt+so ~)))
|
||||
--
|
||||
--
|
||||
|
14
mar/talk/prize.hoon
Normal file
14
mar/talk/prize.hoon
Normal file
@ -0,0 +1,14 @@
|
||||
::
|
||||
:::: /hoon/prize/talk/mar
|
||||
::
|
||||
/? 310
|
||||
/- talk
|
||||
!:
|
||||
[talk .]
|
||||
|_ piz/prize
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun prize :: clam from %noun
|
||||
--
|
||||
--
|
@ -23,21 +23,19 @@
|
||||
=> +
|
||||
|^ %+ joba -.rep
|
||||
?- -.rep
|
||||
$cabal (cabl +.rep)
|
||||
$house a+(turn ~(tap by +.rep) jose)
|
||||
$glyph ((jome |=(a/char a) nack) +.rep)
|
||||
$grams (jobe num+(jone p.rep) tele+[%a (turn q.rep gram)] ~)
|
||||
$group (jobe local+(grop p.rep) global+%.(q.rep (jome parn grop)) ~)
|
||||
$lobby (loby cab.rep)
|
||||
$grams (jobe num+(jone num.rep) tele+[%a (turn gaz.rep gram)] ~)
|
||||
$crowd %^ jobe
|
||||
local+(grop loc.reg.rep)
|
||||
global+%.(rem.reg.rep (jome parn grop))
|
||||
~
|
||||
==
|
||||
++ joce |=(a/knot [%s a])
|
||||
++ jose
|
||||
|= {a/knot b/posture c/cord}
|
||||
(jobe name+[%s a] posture+[%s a] caption+[%s b] ~)
|
||||
::
|
||||
++ jove
|
||||
|= {a/envelope b/delivery}
|
||||
%- jobe :~
|
||||
envelope+(jobe visible+[%b p.a] sender+?~(q.a ~ s+(parn u.q.a)) ~)
|
||||
envelope+(jobe visible+[%b vis.a] sender+?~(sen.a ~ s+(parn u.sen.a)) ~)
|
||||
delivery+[%s b]
|
||||
==
|
||||
++ jope |=(a/ship (jape +:<a>)) ::[%s (crip +:(scow %p a))])
|
||||
@ -56,11 +54,11 @@
|
||||
++ nack |=(a/(set (set partner)) [%a (turn ~(tap in a) sorc)])
|
||||
++ grop (jome phon stas) :: (map ship status)
|
||||
++ phon |=(a/ship (scot %p a))
|
||||
++ stas |=(status (jobe presence+(joce p) human+(huma q) ~))
|
||||
++ gram |=(telegram (jobe ship+(jope p) thought+(thot q) ~))
|
||||
++ stas |=(status (jobe presence+(joce pec) human+(huma man) ~))
|
||||
++ gram |=(telegram (jobe ship+(jope aut) thought+(thot tot) ~))
|
||||
++ thot
|
||||
|= thought
|
||||
(jobe serial+(jape <p>) audience+(audi q) statement+(stam r) ~)
|
||||
(jobe serial+(jape <uid>) audience+(audi aud) statement+(stam sam) ~)
|
||||
::
|
||||
++ audi (jome parn jove)
|
||||
++ bouq
|
||||
@ -70,31 +68,31 @@
|
||||
++ parn
|
||||
|= a/partner ^- cord
|
||||
?- -.a
|
||||
$& (stat p.a)
|
||||
$& (circ p.a)
|
||||
$| %- crip
|
||||
?- -.p.a
|
||||
$twitter "{(trip -.p.a)}/{(trip p.p.a)}"
|
||||
==
|
||||
==
|
||||
::
|
||||
++ stat
|
||||
|= a/station ^- cord
|
||||
(crip "{<p.a>}/{(trip q.a)}")
|
||||
++ circ
|
||||
|= a/circle ^- cord
|
||||
(crip "{<hos.a>}/{(trip nom.a)}")
|
||||
::
|
||||
++ stam
|
||||
|= statement
|
||||
(jobe date+(jode p) bouquet+(bouq q) speech+(spec r) ~)
|
||||
(jobe date+(jode wen) bouquet+(bouq boq) speech+(spec sep) ~)
|
||||
::
|
||||
++ spec
|
||||
|= a/speech
|
||||
%+ joba -.a
|
||||
?+ -.a ~|(stub+-.a !!)
|
||||
$lin (jobe txt+[%s q.a] say+[%b p.a] ~)
|
||||
$url (joba txt+[%s (crip (earf p.a))])
|
||||
$exp (joba txt+[%s p.a])
|
||||
$app (jobe txt+[%s q.a] src+[%s p.a] ~)
|
||||
$fat (jobe tor+(tors p.a) taf+$(a q.a) ~)
|
||||
$mor a+(turn p.a spec)
|
||||
$lin (jobe txt+[%s msg.a] say+[%b pat.a] ~)
|
||||
$url (joba txt+[%s (crip (earf url.a))])
|
||||
$exp (joba txt+[%s exp.a])
|
||||
$fat (jobe tor+(tach tac.a) taf+$(a sep.a) ~)
|
||||
$mor a+(turn ses.a spec)
|
||||
$app (jobe txt+[%s msg.a] src+[%s app.a] ~)
|
||||
$api
|
||||
%- jobe :~
|
||||
service+s+service.a
|
||||
@ -108,30 +106,30 @@
|
||||
:: %inv (jobe ship+(jope p.a) party+[%s q.a] ~)
|
||||
==
|
||||
::
|
||||
++ tors
|
||||
|= a/torso
|
||||
++ tach
|
||||
|= a/attache
|
||||
%+ joba -.a
|
||||
?- -.a
|
||||
$text [%s (of-wain +.a)]
|
||||
$tank [%a (turn +.a joke)]
|
||||
$name (jobe nom+s+p.a mon+$(a q.a) ~)
|
||||
$name (jobe nom+s+nom.a mon+$(a tac.a) ~)
|
||||
==
|
||||
::
|
||||
++ huma
|
||||
|= human
|
||||
%^ jobe
|
||||
hand+?~(hand ~ [%s u.hand])
|
||||
hand+?~(han ~ [%s u.han])
|
||||
:- %true
|
||||
?~ true ~
|
||||
=+ u.true
|
||||
?~ tru ~
|
||||
=+ u.tru
|
||||
(jobe first+[%s p] middle+?~(q ~ [%s u.q]) last+[%s r] ~)
|
||||
~
|
||||
::
|
||||
++ cabl
|
||||
|= cabal
|
||||
++ loby
|
||||
|= lobby
|
||||
%- jobe :~
|
||||
loc+(conf loc)
|
||||
ham+((jome stat conf) ham)
|
||||
ham+((jome circ conf) rem)
|
||||
==
|
||||
::
|
||||
++ sorc
|
||||
@ -141,10 +139,10 @@
|
||||
++ conf
|
||||
|= config
|
||||
%- jobe :~
|
||||
sources+(sorc sources)
|
||||
caption+[%s caption]
|
||||
=- cordon+(jobe posture+[%s -.cordon] list+[%a -] ~)
|
||||
(turn ~(tap in q.cordon) jope) :: XX jase
|
||||
sources+(sorc src)
|
||||
caption+[%s cap]
|
||||
=- control+(jobe security+[%s -.con] list+[%a -] ~)
|
||||
(turn (~(tap in ses.con)) jope) :: XX jase
|
||||
==
|
||||
--
|
||||
-- --
|
||||
|
14
mar/talk/rumor.hoon
Normal file
14
mar/talk/rumor.hoon
Normal file
@ -0,0 +1,14 @@
|
||||
::
|
||||
:::: /hoon/rumor/talk/mar
|
||||
::
|
||||
/? 310
|
||||
/- talk
|
||||
!:
|
||||
[talk .]
|
||||
|_ dif/rumor
|
||||
::
|
||||
++ grab :: convert from
|
||||
|%
|
||||
++ noun rumor :: clam from %noun
|
||||
--
|
||||
--
|
@ -12,34 +12,42 @@
|
||||
=, old-zuse
|
||||
|_ gam/(list telegram)
|
||||
::
|
||||
++ grab
|
||||
|%
|
||||
++ grab
|
||||
|%
|
||||
++ noun (list telegram)
|
||||
++ mime |=(^mime (json (rash q.q apex:de-json)))
|
||||
++ json
|
||||
=> [dejs talk old-zuse]
|
||||
|= a/json ^- (list telegram)
|
||||
%. a
|
||||
|^ (ar (ot ship+(su fed:ag) thought+thot ~))
|
||||
:: ++ of
|
||||
:: |* a/(pole {@tas fist})
|
||||
:: |= b/json
|
||||
:: %. ((of:jo a) b)
|
||||
:: %- slog
|
||||
:: ?+ b ~
|
||||
:: {$o *}
|
||||
:: %+ murn `(list {@tas fist})`a
|
||||
:: |= {c/term d/fist} ^- (unit tank)
|
||||
:: =+ (~(get by p.b) c)
|
||||
:: ?~ - ~
|
||||
:: =+ (d u)
|
||||
:: ?~ - (some >[c u]<)
|
||||
:: ~
|
||||
:: ==
|
||||
=- (need ((ar (ot ship+(su fed:ag) thought+thot ~)) a))
|
||||
|%
|
||||
++ of
|
||||
|* a/(pole {@tas fist})
|
||||
|= b/json
|
||||
%. ((of:jo a) b)
|
||||
%- slog
|
||||
?+ b ~
|
||||
{$o *}
|
||||
%+ murn `(list {@tas fist})`a
|
||||
|= {c/term d/fist} ^- (unit tank)
|
||||
=+ (~(get by p.b) c)
|
||||
?~ - ~
|
||||
=+ (d u)
|
||||
?~ - (some >[c u]<)
|
||||
~
|
||||
==
|
||||
++ op :: parse keys of map
|
||||
|* {fel/rule wit/fist}
|
||||
%+ cu malt
|
||||
%+ ci
|
||||
|= a/(map cord _(need *wit))
|
||||
^- (unit (list _[(wonk *fel) (need *wit)]))
|
||||
(zl (turn (~(tap by a)) (head-rush fel)))
|
||||
(om wit)
|
||||
::
|
||||
++ as :: array as set
|
||||
|* a/fist
|
||||
(cu ~(gas in *(set _*a)) (ar a))
|
||||
|* a/fist
|
||||
(cu ~(gas in *(set _(need *a))) (ar a))
|
||||
::
|
||||
++ ke :: callbacks
|
||||
|* {gar/* sef/_|.(fist)}
|
||||
@ -48,52 +56,44 @@
|
||||
=- ~! gar ~! (need -) -
|
||||
((sef) jon)
|
||||
::
|
||||
++ head-rush
|
||||
++ head-rush
|
||||
|* a/rule
|
||||
|* {cord *}
|
||||
=+ nit=(rush +<- a)
|
||||
=+ nit=(rush +<- a)
|
||||
?~ nit ~
|
||||
(some [u.nit +>->])
|
||||
::
|
||||
++ thot
|
||||
^- $-(json thought)
|
||||
%- ot :~
|
||||
serial+`$-(json serial)`(ci (slat %uv) so)
|
||||
audience+`$-(json audience)`audi
|
||||
statement+`$-(json statement)`stam
|
||||
serial+`$-(json (unit serial))`(ci (slat %uv) so)
|
||||
audience+`$-(json (unit audience))`audi
|
||||
statement+`$-(json (unit statement))`stam
|
||||
==
|
||||
::
|
||||
++ audi `$-(json audience)`(op parn memb)
|
||||
++ auri (op parn (ci (soft presence) so))
|
||||
++ memb ^- $-(json (pair envelope delivery))
|
||||
(ot envelope+lope delivery+(cu (hard delivery) so) ~)
|
||||
++ lope (ot visible+bo sender+(mu (su parn)) ~)
|
||||
++ audi `$-(json (unit audience))`circ
|
||||
++ auri (op circ (ci (soft presence) so))
|
||||
++ lope (ot visible+bo sender+(mu (su circ)) ~)
|
||||
::
|
||||
++ parn
|
||||
^- $-(nail (like partner))
|
||||
%+ pick
|
||||
;~((glue fas) ;~(pfix sig fed:ag) urs:ab)
|
||||
%+ sear (soft passport)
|
||||
;~((glue fas) sym urs:ab) :: XX [a-z0-9_]{1,15}
|
||||
++ circ
|
||||
^- $-(nail (like circle))
|
||||
;~((glue fas) ;~(pfix sig fed:ag) urs:ab)
|
||||
::
|
||||
++ stam (ot date+di bouquet+(as (ar so)) speech+spec ~)
|
||||
++ stam (ot date+di speech+spec ~)
|
||||
++ spec
|
||||
%+ ke *speech |. ~+
|
||||
%- of :~
|
||||
lin+(ot say+bo txt+so ~)
|
||||
lin+(ot say+bo txt+so ~)
|
||||
url+(ot txt+(su aurf:urlp) ~)
|
||||
exp+(ot txt+so ~)
|
||||
app+(ot txt+so src+so ~)
|
||||
fat+(ot tor+tors taf+spec ~)
|
||||
ext+(ot nom+so txe+blob ~)
|
||||
non+ul
|
||||
mor+(ar spec)
|
||||
:: inv+(ot ship+(su fed:ag) party+(su urs:ab) ~)
|
||||
==
|
||||
++ tors
|
||||
++ tors
|
||||
%+ ke *torso |. ~+
|
||||
%- of :~
|
||||
name+(ot nom+so mon+tors ~)
|
||||
name+(ot nom+so mon+tors ~)
|
||||
text+(cu to-wain so)
|
||||
tank+(ot dat+(cu (hard (list tank)) blob) ~)
|
||||
==
|
||||
@ -111,14 +111,7 @@
|
||||
:- %a
|
||||
%+ turn gam
|
||||
|= telegram
|
||||
(jobe ship+(jope p) thought+(thot q) ~)
|
||||
::
|
||||
++ jove
|
||||
|= {a/envelope b/delivery}
|
||||
%- jobe :~
|
||||
envelope+(jobe visible+[%b p.a] sender+?~(q.a ~ s+(parn u.q.a)) ~)
|
||||
delivery+[%s b]
|
||||
==
|
||||
(jobe ship+(jope aut) thought+(thot tot) ~)
|
||||
::
|
||||
++ jope |=(a/ship (jape +:<a>)) ::[%s (crip +:(scow %p a))])
|
||||
++ joke |=(a/tank (jape (of-wall (wash 0^80 a))))
|
||||
@ -126,46 +119,27 @@
|
||||
::
|
||||
++ thot
|
||||
|= thought
|
||||
(jobe serial+(jape <p>) audience+(audi q) statement+(stam r) ~)
|
||||
(jobe serial+(jape <uid>) audience+(audi aud) statement+(stam sam) ~)
|
||||
::
|
||||
++ audi (map-to-json parn jove)
|
||||
++ bouq
|
||||
|= a/bouquet
|
||||
a+(turn ~(tap in a) |=(b/path a+(turn b |=(c/knot s+c))))
|
||||
++ audi (set-to-json circ)
|
||||
::
|
||||
++ parn
|
||||
|= a/partner ^- cord
|
||||
?- -.a
|
||||
$& (stat p.a)
|
||||
$| %- crip
|
||||
?- -.p.a
|
||||
$twitter "{(trip -.p.a)}/{(trip p.p.a)}"
|
||||
==
|
||||
==
|
||||
::
|
||||
++ stat
|
||||
|= a/station ^- cord
|
||||
(crip "{<p.a>}/{(trip q.a)}")
|
||||
++ circ
|
||||
|= a/circle ^- cord
|
||||
(crip "{<hos.a>}/{(trip nom.a)}")
|
||||
::
|
||||
++ stam
|
||||
|= statement
|
||||
(jobe date+(jode p) bouquet+(bouq q) speech+(spec r) ~)
|
||||
(jobe date+(jode wen) speech+(spec sep) ~)
|
||||
::
|
||||
++ spec
|
||||
|= a/speech
|
||||
%+ joba -.a
|
||||
?+ -.a ~|(stub+-.a !!)
|
||||
$lin (jobe txt+[%s q.a] say+[%b p.a] ~)
|
||||
$url (joba txt+(jape (earf p.a)))
|
||||
$exp (joba txt+[%s p.a])
|
||||
$app (jobe txt+[%s q.a] src+[%s p.a] ~)
|
||||
$fat (jobe tor+(tors p.a) taf+$(a q.a) ~)
|
||||
$ext (jobe nom+[%s p.a] txe+(jape (sifo (jam +.a))) ~)
|
||||
$non ~
|
||||
$mor :- %a
|
||||
|- ^- (list json)
|
||||
?~ p.a ~
|
||||
[^$(a i.p.a) $(p.a t.p.a)]
|
||||
$lin (jobe txt+[%s msg.a] say+[%b pat.a] ~)
|
||||
$url (joba txt+(jape (earf url.a)))
|
||||
$exp (joba txt+[%s exp.a])
|
||||
$fat (jobe tor+(tors tac.a) taf+$(a sep.a) ~)
|
||||
$app (jobe txt+[%s msg.a] src+[%s app.a] ~)
|
||||
:: $inv (jobe ship+(jope p.a) party+[%s q.a] ~)
|
||||
==
|
||||
::
|
||||
@ -175,7 +149,7 @@
|
||||
?- -.a
|
||||
$text [%s (of-wain +.a)]
|
||||
$tank (jobe txt+[%a (turn +.a joke)] dat+(jape (sifo (jam +.a))) ~)
|
||||
$name (jobe nom+s+p.a mon+$(a q.a) ~)
|
||||
$name (jobe nom+s+nom.a mon+$(a tac.a) ~)
|
||||
==
|
||||
::
|
||||
--
|
||||
|
352
sur/talk.hoon
352
sur/talk.hoon
@ -1,90 +1,288 @@
|
||||
::
|
||||
::
|
||||
:::: /hoon/talk/sur
|
||||
::
|
||||
!:
|
||||
|%
|
||||
++ audience (map partner (pair envelope delivery)) :: destination+state
|
||||
++ atlas (map ship status) :: presence map
|
||||
++ bouquet (set flavor) :: complete aroma
|
||||
++ command :: effect on party
|
||||
$% {$design (pair knot (unit config))} :: configure+destroy
|
||||
{$publish (list thought)} :: originate
|
||||
{$review (list thought)} :: deliver
|
||||
::
|
||||
::TODO use different words for different kinds of burdens
|
||||
::
|
||||
::> ||
|
||||
::> || %wrappers
|
||||
::> ||
|
||||
::> wrapper molds, for semantic clarity.
|
||||
::+|
|
||||
::
|
||||
::TODO rename
|
||||
++ naem term ::< circle name
|
||||
++ nick cord ::< local nickname
|
||||
::
|
||||
::> ||
|
||||
::> || %query-models
|
||||
::> ||
|
||||
::> models relating to queries, their results and updates.
|
||||
::+|
|
||||
::
|
||||
++ query ::> query paths
|
||||
$% {$reader $~} ::< shared ui state
|
||||
{$burden who/ship} ::< duties to share
|
||||
{$report $~} ::< duty reports
|
||||
{$circle nom/naem ran/range} ::< story query
|
||||
::{$circle nom/naem wat/circle-data} ::< story query
|
||||
:: okay, the problem here is that we want to have
|
||||
:: separate subscriptions for the different kinds
|
||||
:: of story data. we can do that, but then if we
|
||||
:: want all data and a specific range for the
|
||||
:: messages (very common) then we need to do
|
||||
:: three separate subscriptions.
|
||||
:: possible solution would be adding range to all
|
||||
:: story queries, but that feels weird irt
|
||||
:: presence and configs.
|
||||
:: (also, that would make for poor query design:
|
||||
:: having a ~ halfway through is ugly.)
|
||||
::
|
||||
:: /circle/name/range
|
||||
:: /circle/name/all
|
||||
:: /circle/name/grams/range
|
||||
:: /circle/name/crowd/local
|
||||
:: /circle/name/grams&crowd/range/local
|
||||
:: /circle/name/grams
|
||||
:: /circle/name/crowd
|
||||
::
|
||||
::TODO look at graphql and think about doing
|
||||
:: multiple queries in a single %peer.
|
||||
== ::
|
||||
++ cabal :: metaconfiguration
|
||||
$: loc/config :: local config
|
||||
ham/(map station config) :: neighborhood configs
|
||||
::++ circle-data ::> queried data
|
||||
:: $% {$all $~} ::< everything, always
|
||||
:: {$grams ran/range} ::< messages (in range)
|
||||
:: {$crowd wer/where} ::< presence
|
||||
:: {$lobby wer/where} ::< configurations
|
||||
:: == ::
|
||||
++ range ::> inclusive msg range
|
||||
%- unit ::< ~ means everything
|
||||
$: hed/place ::< start of range
|
||||
tal/(unit place) ::< opt end of range
|
||||
== ::
|
||||
++ config :: party configuration
|
||||
$: sources/(set partner) :: pulls from
|
||||
caption/cord :: about
|
||||
cordon/control :: restricted to
|
||||
++ place ::> range indicators
|
||||
$% {$da @da} ::< date
|
||||
{$ud @ud} ::< message number
|
||||
== ::
|
||||
++ control (pair posture (set ship)) :: access control
|
||||
++ delivery :: delivery state
|
||||
$? $pending :: undelivered
|
||||
$received :: delivered
|
||||
$rejected :: undeliverable
|
||||
$released :: sent one-way
|
||||
$accepted :: fully processed
|
||||
::TODO overlaps with agent's ++where
|
||||
::++ where ::> data from
|
||||
:: %- unit ::< ~ means everywhere
|
||||
:: ?($local $remote) ::< local or remote only
|
||||
++ prize ::> query result
|
||||
$% {$reader prize-reader} ::< /reader
|
||||
{$friend cis/(set circle)} ::< /friend
|
||||
{$burden sos/(map naem burden)} ::< /burden
|
||||
::TODO do we ever use remote things from remote circles?
|
||||
{$circle package} ::< /circle
|
||||
== ::
|
||||
++ envelope (pair ? (unit partner)) :: visible sender
|
||||
++ flavor path :: content flavor
|
||||
++ human :: human identifier
|
||||
$: true/(unit (trel @t (unit @t) @t)) :: true name
|
||||
hand/(unit @t) :: handle
|
||||
++ prize-reader ::
|
||||
$: gys/(jug char (set circle)) ::< glyph bindings
|
||||
nis/(map ship nick) ::< local nicknames
|
||||
== ::
|
||||
++ passport :: foreign flow
|
||||
$% {$twitter p/@t} :: twitter
|
||||
++ rumor ::< query result change
|
||||
$% {$reader rum/rumor-reader} ::< /reader
|
||||
{$friend add/? cir/circle} ::< /friend
|
||||
{$burden nom/naem rum/rumor-story} ::< /burden
|
||||
{$circle rum/rumor-story} ::< /circle
|
||||
== ::
|
||||
++ posture :: security posture
|
||||
$? $black :: channel
|
||||
$white :: chamber
|
||||
$green :: journal
|
||||
$brown :: mailbox
|
||||
++ rumor-reader ::< changed ui state
|
||||
$% {$glyph diff-glyph} ::< un/bound glyph
|
||||
{$nick diff-nick} ::< changed nickname
|
||||
== ::
|
||||
++ presence ?($gone $hear $talk) :: status type
|
||||
++ register (pair atlas (map partner atlas)) :: ping me, ping srcs
|
||||
++ shelf (map knot (pair posture cord)) :: ship shape
|
||||
++ report :: talk update
|
||||
$% {$cabal cabal} :: config neighborhood
|
||||
:: {$folder (list report)} :: multiple
|
||||
{$grams (pair @ud (list telegram))} :: beginning thoughts
|
||||
{$group register} :: presence
|
||||
{$house shelf} :: station set
|
||||
{$glyph (jug char (set partner))} :: relevant binding
|
||||
++ burden ::< full story state
|
||||
$: gaz/(list telegram) ::< all messages
|
||||
cos/lobby ::< loc & rem configs
|
||||
pes/crowd ::< loc & rem presences
|
||||
== ::
|
||||
++ speech :: narrative action
|
||||
$% {$lan p/knot q/@t} :: local announce
|
||||
{$exp p/@t} :: hoon line
|
||||
{$non $~} :: no content (yo)
|
||||
{$ext p/@tas q/*} :: extended action
|
||||
{$fat p/torso q/speech} :: attachment
|
||||
:: {$inv p/station} :: invite to station
|
||||
{$url p/purf:eyre} :: parsed url
|
||||
{$ire p/serial q/speech} :: in-reply-to
|
||||
{$lin p/? q/@t} :: no/@ text line
|
||||
{$mor p/(list speech)} :: multiplex
|
||||
{$app p/@tas q/@t} :: app message
|
||||
$: $api :: api message
|
||||
service/@tas :: service name
|
||||
id/@t :: id on the service
|
||||
id-url/purf:eyre :: link to id
|
||||
summary/@t :: summary of event
|
||||
body/@t :: body of event
|
||||
url/purf:eyre :: link to event
|
||||
meta/json :: other data for web
|
||||
== ::
|
||||
++ package ::< story state
|
||||
$: nes/(list envelope) ::< messages
|
||||
cos/lobby ::< loc & rem configs
|
||||
pes/crowd ::< loc & rem presences
|
||||
== ::
|
||||
++ serial @uvH :: unique identity
|
||||
++ partner (each station passport) :: interlocutor
|
||||
++ status (pair presence human) :: participant
|
||||
++ statement (trel @da bouquet speech) :: when this
|
||||
++ station (pair ship knot) :: domestic flow
|
||||
++ telegram (pair ship thought) :: who which whom what
|
||||
++ thought (trel serial audience statement) :: which whom what
|
||||
++ torso :: attachment
|
||||
$% {$name (pair @t torso)} :: named attachment
|
||||
{$text (list @t)} :: text lines
|
||||
{$tank (list tank)} :: tank list
|
||||
::TODO deltas into app
|
||||
++ delta ::
|
||||
$% :: messaging state ::
|
||||
{$out cir/circle out/(list thought)} ::< send msgs to circle
|
||||
{$done cir/circle ses/(list serial) res/delivery} ::< set delivery state
|
||||
:: shared ui state ::
|
||||
{$glyph diff-glyph} ::< un/bound glyph
|
||||
{$nick diff-nick} ::< changed nickname
|
||||
:: story state ::
|
||||
{$story nom/naem det/delta-story} ::< change to story
|
||||
:: side-effects ::
|
||||
{$init $~} ::< initialize
|
||||
{$observe who/ship} ::< watch burden bearer
|
||||
{$present hos/ship nos/(set naem) dif/diff-status}::< send %present cmd
|
||||
{$quit ost/bone} ::< force unsubscribe
|
||||
== ::
|
||||
++ diff-glyph {bin/? gyf/char pas/(set circle)} ::< un/bound glyph
|
||||
++ diff-nick {who/ship nic/nick} ::< changed nickname
|
||||
++ delta-story ::> story delta
|
||||
$? diff-story ::< both in & outward
|
||||
$% {$inherited ihr/?} ::< inherited flag
|
||||
{$follow sub/? cos/(map circle range)} ::< un/subscribe
|
||||
{$sequent cir/circle num/@ud} ::< update last-heard
|
||||
{$gram gam/telegram} ::< new/changed msgs
|
||||
== == ::
|
||||
++ diff-story ::> story change
|
||||
$% {$new cof/config} ::< new story
|
||||
{$bear bur/burden} ::< new inherited story
|
||||
{$config cir/circle dif/diff-config} ::< new/changed config
|
||||
{$status cir/circle who/ship dif/diff-status} ::< new/changed status
|
||||
{$remove $~} ::< removed story
|
||||
== ::
|
||||
++ rumor-story ::> story rumor
|
||||
$? diff-story ::< both in & outward
|
||||
$% {$gram nev/envelope} ::< new/changed msgs
|
||||
== == ::
|
||||
++ diff-config ::> config change
|
||||
::TODO maybe just full? think.
|
||||
$% {$full cof/config} ::< set w/o side-effects
|
||||
{$source add/? cir/circle} ::< add/rem sources
|
||||
{$caption cap/cord} ::< changed description
|
||||
{$filter fit/filter} ::< changed filter
|
||||
{$secure sec/security} ::< changed security
|
||||
{$permit add/? sis/(set ship)} ::< add/rem to b/w-list
|
||||
{$remove $~} ::< removed config
|
||||
== ::
|
||||
++ diff-status ::> status change
|
||||
$% {$full sat/status} ::< fully changed status
|
||||
{$presence pec/presence} ::< changed presence
|
||||
{$human dif/diff-human} ::< changed name
|
||||
{$remove $~} ::< removed config
|
||||
== ::
|
||||
++ diff-human ::> name change
|
||||
$% {$full man/human} ::< fully changed name
|
||||
{$true tru/(unit (trel cord (unit cord) cord))} ::< changed true name
|
||||
{$handle han/(unit cord)} ::< changed handle
|
||||
== ::
|
||||
::
|
||||
::> ||
|
||||
::> || %reader-communication
|
||||
::> ||
|
||||
::> broker interfaces for readers.
|
||||
::+|
|
||||
::
|
||||
++ action ::> user action
|
||||
$% :: circle configuration ::
|
||||
{$create nom/naem des/cord sec/security} ::< create circle
|
||||
{$delete nom/naem why/(unit cord)} ::< delete + announce
|
||||
{$depict nom/naem des/cord} ::< change description
|
||||
{$filter nom/naem fit/filter} ::< change message rules
|
||||
{$permit nom/naem inv/? sis/(set ship)} ::< invite/banish
|
||||
{$source nom/naem sub/? src/(map circle range)} ::< un/sub to/from src
|
||||
:: messaging ::
|
||||
{$convey tos/(list thought)} ::< post exact
|
||||
{$phrase aud/(set circle) ses/(list speech)} ::< post easy
|
||||
:: personal metadata ::
|
||||
{$notify cis/(set circle) pes/presence} ::< our presence update
|
||||
{$naming cis/(set circle) man/human} ::< our name update
|
||||
:: changing shared ui ::
|
||||
{$glyph gyf/char pas/(set circle) bin/?} ::< un/bind a glyph
|
||||
{$nick who/ship nic/nick} ::< new identity
|
||||
== ::
|
||||
::
|
||||
::> ||
|
||||
::> || %broker-communication
|
||||
::> ||
|
||||
::> structures for communicating between brokers.
|
||||
::+|
|
||||
::
|
||||
++ command ::> effect on story
|
||||
$% {$publish tos/(list thought)} ::< deliver
|
||||
{$present nos/(set naem) dif/diff-status} ::< status update
|
||||
{$bearing $~} ::< prompt to listen
|
||||
== ::
|
||||
::
|
||||
::> ||
|
||||
::> || %circles
|
||||
::> ||
|
||||
::> messaging targets and their metadata.
|
||||
::+|
|
||||
::
|
||||
++ circle {hos/ship nom/naem} ::< native target
|
||||
:: circle configurations. ::
|
||||
++ lobby {loc/config rem/(map circle config)} ::< our & srcs configs
|
||||
++ config ::> circle config
|
||||
$: src/(set circle) ::< active sources
|
||||
::TODO ^ include range? just remove!
|
||||
cap/cord ::< description
|
||||
fit/filter ::< message rules
|
||||
con/control ::< restrictions
|
||||
== ::
|
||||
++ filter ::> content filters
|
||||
$: cas/? ::< dis/allow capitals
|
||||
utf/? ::< dis/allow non-ascii
|
||||
::TODO maybe message length
|
||||
== ::
|
||||
++ control {sec/security ses/(set ship)} ::< access control
|
||||
++ security ::> security mode
|
||||
$? $black ::< channel, blacklist
|
||||
$white ::< village, whitelist
|
||||
$green ::< journal, author list
|
||||
$brown ::< mailbox, our r, bl w
|
||||
== ::
|
||||
:: participant metadata. ::
|
||||
::TODO think about naming more
|
||||
++ crowd {loc/group rem/(map circle group)} ::< our & srcs presences
|
||||
++ group (map ship status) ::< presence map
|
||||
++ status {pec/presence man/human} ::< participant
|
||||
++ presence ::> status type
|
||||
$? $gone ::< absent
|
||||
$idle ::< idle
|
||||
$hear ::< present
|
||||
$talk ::< typing
|
||||
== ::
|
||||
++ human ::> human identifier
|
||||
$: han/(unit cord) ::< handle
|
||||
tru/(unit (trel cord (unit cord) cord)) ::< true name
|
||||
== ::
|
||||
::
|
||||
::> ||
|
||||
::> || %message-data
|
||||
::> ||
|
||||
::> structures for containing main message data.
|
||||
::+|
|
||||
::
|
||||
::TODO some structure for extra message state
|
||||
:: local (to readers): delivery state, read flags
|
||||
:: remote (to halls): sequence nr
|
||||
++ envelope {num/@ud gam/telegram} ::< outward message
|
||||
++ telegram {aut/ship thought} ::< whose message
|
||||
++ thought ::> inner message
|
||||
$: uid/serial ::< unique identifier
|
||||
aud/audience ::< destinations
|
||||
wen/@da ::< timestamp
|
||||
sep/speech ::< content
|
||||
== ::
|
||||
++ speech ::> content body
|
||||
$% {$lin pat/? msg/cord} ::< no/@ text line
|
||||
{$url url/purf} ::< parsed url
|
||||
{$exp exp/cord res/(list tank)} ::< hoon line
|
||||
{$ire top/serial sep/speech} ::< in reply to
|
||||
{$fat tac/attache sep/speech} ::< attachment
|
||||
{$inv inv/? cir/circle} ::< inv/ban for circle
|
||||
{$app app/term msg/cord} ::< app message
|
||||
== ::
|
||||
++ attache ::> attachment
|
||||
$% {$name nom/cord tac/attache} ::< named attachment
|
||||
{$text (list cord)} ::< text lines
|
||||
{$tank (list tank)} ::< tank list
|
||||
== ::
|
||||
::
|
||||
::> ||
|
||||
::> || %message-metadata
|
||||
::> ||
|
||||
:: structures for containing message metadata.
|
||||
::+|
|
||||
::
|
||||
++ serial @uvH ::< unique identifier
|
||||
++ audience (set circle) ::< destinations
|
||||
++ tracking (map circle delivery) ::> delivery per target
|
||||
++ delivery ::> delivery state
|
||||
$? $pending ::< undelivered
|
||||
$accepted ::< received
|
||||
$rejected ::< denied
|
||||
== ::
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user