Reorganized the talk structures and slightly improved their documentation.

This commit is contained in:
Fang 2017-04-21 13:43:17 +02:00
parent a08d490852
commit 1cf95788fa

View File

@ -2,119 +2,154 @@
:::: /hoon/talk/sur :::: /hoon/talk/sur
!: !:
|% |%
++ audience (map partner (pair envelope delivery)) :: destination+state ::
++ atlas (map ship status) :: presence map ::TODO station -> circle
++ bouquet (set flavor) :: complete aroma ::
++ command :: effect on party ::> ||
$% {$review (list thought)} :: deliver ::> || %reader-communication
== :: ::> ||
++ action :: user action ::> broker interfaces for readers.
::+|
::
++ action ::> user action
$% :: station configuration :: $% :: station configuration ::
{$create (trel knot cord posture)} :: create station {$create (trel knot cord posture)} ::< create station
{$source (trel knot ? (set partner))} :: un/sub p to/from r {$source (trel knot ? (set partner))} ::< un/sub p to/from r
{$depict (pair knot cord)} :: change description {$depict (pair knot cord)} ::< change description
{$permit (trel knot ? (set ship))} :: invite/banish {$permit (trel knot ? (set ship))} ::< invite/banish
{$delete (pair knot (unit @t))} :: delete + announce {$delete (pair knot (unit cord))} ::< delete + announce
:: messaging :: :: messaging ::
{$convey (list thought)} :: post exact {$convey (list thought)} ::< post exact
{$phrase (pair (set partner) (list speech))} :: post easy {$phrase (pair (set partner) (list speech))} ::< post easy
:: personal metadata :: :: personal metadata ::
::TODO change to target partners, not only our stations. ::TODO change to target partners, not only our stations.
{$status (pair (set knot) status)} :: our status update {$status (pair (set knot) status)} ::< our status update
:: changing shared ui :: :: changing shared ui ::
{$human (pair ship human)} :: new identity {$human (pair ship human)} ::< new identity
{$glyph (trel char (set partner) ?)} :: un/bind a glyph {$glyph (trel char (set partner) ?)} ::< un/bind a glyph
== :: == ::
++ reaction :: user information ++ reaction ::> user information
$: kind/?($info $fail) :: result $: kind/?($info $fail) ::< result
what/@t :: explain what/@t ::< explain
why/(unit action) :: cause why/(unit action) ::< cause
== :: == ::
++ cabal :: metaconfiguration ++ lowdown ::> new/changed state
$: loc/config :: local config
ham/(map station config) :: neighborhood configs
== ::
++ config :: party configuration
$: sources/(set partner) :: pulls from
caption/cord :: about
cordon/control :: restricted to
== ::
++ control (pair posture (set ship)) :: access control
++ delivery :: delivery state
$? $pending :: undelivered
$received :: delivered
$rejected :: undeliverable
$released :: sent one-way
$accepted :: fully processed
== ::
++ envelope (pair ? (unit partner)) :: visible sender
++ flavor path :: content flavor
++ human :: human identifier
$: true/(unit (trel @t (unit @t) @t)) ::TODO used? true name
hand/(unit @t) :: handle
== ::
++ passport :: foreign flow
$% {$twitter p/@t} :: twitter
== ::
++ posture :: security posture
$? $black :: channel, blacklist
$white :: village, whitelist
$green :: journal, author list
$brown :: mailbox, our r, bl w
== ::
++ 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
{$grams (pair @ud (list telegram))} :: thoughts
{$group register} :: presence
== ::
++ lowdown :: changed shared state
$% :: story state :: $% :: story state ::
{$confs (unit config) (map station (unit config))}:: changed configs {$confs (unit config) (map station (unit config))}::< configs
{$precs register} :: changed presences {$precs register} ::< presences
{$grams (pair @ud (list telegram))} :: new grams {$grams (pair @ud (list telegram))} ::< messages
:: ui state :: :: ui state ::
{$glyph (jug char (set partner))} :: new bindings {$glyph (jug char (set partner))} ::< glyph bindings
{$names (map ship (unit human))} :: new identities {$names (map ship (unit human))} ::< nicknames
== :: == ::
++ speech :: narrative action ::
$% {$lan p/knot q/@t} :: local announce ::> ||
{$exp p/@t} :: hoon line ::> || %broker-communication
{$non $~} :: no content (yo) ::> ||
::TODO so, this is extensibility tacked on, rather than built-in? ::> structures for communicating between brokers.
:: really, talk has been two-split but the guardian is still two ::+|
:: things at once. you want base-guardian and talk-guardian. ::
:: ...that's probably what %gall is, but then why do we have $ext? ++ command ::> effect on story
{$ext p/@tas q/*} :: extended action $% {$review (list thought)} ::< deliver
{$fat p/torso q/speech} :: attachment == ::
{$inv p/? q/station} :: inv/ban for station ++ report ::> update
{$url p/purf} :: parsed url $% {$cabal cabal} ::< config neighborhood
{$ire p/serial q/speech} :: in-reply-to {$group register} ::< presence
{$lin p/? q/@t} :: no/@ text line {$grams (pair @ud (list telegram))} ::< thoughts
{$mor p/(list speech)} :: multiplex == ::
{$app p/@tas q/@t} :: app message ::
$: $api :: api message ::> ||
service/@tas :: service name ::> || %circles
id/@t :: id on the service ::> ||
id-url/purf :: link to id ::> messaging targets and their metadata.
summary/@t :: summary of event ::+|
body/@t :: body of event ::
url/purf :: link to event ++ partner (each station passport) ::< message target
meta/json :: other data for web ++ station (pair ship knot) ::< native target
++ passport ::> foreign target
$% {$twitter p/@t} ::< twitter handle
== ::
::> circle configurations.
++ cabal ::> metaconfiguration
$: loc/config ::< local config
ham/(map station config) ::< neighborhood configs
== ::
++ config ::> station config
$: sources/(set partner) ::< pulls from
caption/cord ::< description
cordon/control ::< restrictions
== ::
++ control (pair posture (set ship)) ::< access control
++ posture ::> security kind
$? $black ::< channel, blacklist
$white ::< village, whitelist
$green ::< journal, author list
$brown ::< mailbox, our r, bl w
== ::
::> participant metadata.
++ register (pair atlas (map partner atlas)) ::< our & srcs presences
++ atlas (map ship status) ::< presence map
++ status (pair presence human) ::< participant
++ presence ?($gone $hear $talk) ::< status type
++ human ::> human identifier
$: true/(unit (trel @t (unit @t) @t)) ::<TODO unused true name
hand/(unit @t) ::< handle
== ::
::
::> ||
::> || %message-data
::> ||
::> structures for containing main message data.
::+|
::
++ telegram (pair ship thought) ::< who thought
++ thought (trel serial audience statement) ::< which whom what
++ statement (trel @da bouquet speech) ::< when this
++ speech ::> narrative action
$% {$non $~} ::< no content (yo)
{$lin p/? q/@t} ::< no/@ text line
{$ire p/serial q/speech} ::< in-reply-to
{$url p/purf} ::< parsed url
{$exp p/@t} ::< hoon line
{$fat p/torso q/speech} ::< attachment
{$lan p/knot q/@t} ::< local announce
{$inv p/? q/station} ::< inv/ban for station
{$mor p/(list speech)} ::< multiplex
{$ext p/@tas q/*} ::< extended action
{$app p/@tas q/@t} ::< app message
$: $api ::< api message
service/@tas ::< service name
id/@t ::< id on the service
id-url/purf ::< link to id
summary/@t ::< summary of event
body/@t ::< body of event
url/purf ::< link to event
meta/json ::< other data for web
== :: == ::
== :: == ::
++ serial @uvH :: unique identity ++ torso ::> attachment
++ partner (each station passport) :: interlocutor $% {$name (pair @t torso)} ::< named attachment
++ status (pair presence human) :: participant {$text (list @t)} ::< text lines
++ statement (trel @da bouquet speech) :: when this {$tank (list tank)} ::< tank list
++ 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
== :: == ::
::
::> ||
::> || %message-metadata
::> ||
:: structures for containing message metadata.
::+|
::
++ serial @uvH ::< unique identifier
++ audience (map partner (pair envelope delivery)) ::< destination + state
++ envelope (pair ? (unit partner)) ::< visible sender
++ delivery ::> delivery state
$? $pending ::< undelivered
$received ::< delivered
$rejected ::< undeliverable
$released ::< sent one-way
$accepted ::< fully processed
== ::
::TODO what is ++bouquet even for? not yet used...
++ bouquet (set flavor) ::< complete aroma
++ flavor path ::< content flavor
-- --