mirror of
https://github.com/urbit/shrub.git
synced 2025-01-07 05:26:56 +03:00
Reorganized the talk structures and slightly improved their documentation.
This commit is contained in:
parent
a08d490852
commit
1cf95788fa
239
sur/talk.hoon
239
sur/talk.hoon
@ -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
|
||||||
--
|
--
|
||||||
|
Loading…
Reference in New Issue
Block a user