mall: convert talk to mall

also change !< to crash on failure
This commit is contained in:
Philip Monk 2019-09-23 15:44:48 -07:00
parent eeac28bdc6
commit fc9f17ae23
No known key found for this signature in database
GPG Key ID: B66E1F02604E44EC
12 changed files with 2740 additions and 139 deletions

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:617f028e5c381e8adf813d5b18e81c6b1ddd676049c4e520308af545a20999d2 oid sha256:393705422a0c117f1adb64c4606021d50f2520152dd5b34691cf8a386e0dfec6
size 15663155 size 15813426

View File

@ -531,8 +531,7 @@
:* %pass :* %pass
/poke /poke
%agent %agent
p.p.p.mad p.p.mad
q.p.p.mad
%poke %poke
cay cay
== ==
@ -1098,11 +1097,7 @@
++ handle-upgrade-state ++ handle-upgrade-state
|= =old-state=vase |= =old-state=vase
=/ old-state !<(house old-state-vase) =/ old-state !<(house old-state-vase)
?~ old-state `..handle-init(state old-state)
~& %prep-lost
`..handle-init
~& %prep-found
`..handle-init(state u.old-state)
:: ::
++ handle-poke ++ handle-poke
|= [=mark =vase] |= [=mark =vase]
@ -1112,9 +1107,9 @@
=^ moves state =^ moves state
^- (quip card:agent:mall house) ^- (quip card:agent:mall house)
?+ mark ~|([%dojo-poke-bad-mark mark] !!) ?+ mark ~|([%dojo-poke-bad-mark mark] !!)
%sole-action he-abet:(he-type:he-full (need !<(sole-action vase))) %sole-action he-abet:(he-type:he-full !<(sole-action vase))
%lens-command he-abet:(he-lens:he-full (need !<(command:lens vase))) %lens-command he-abet:(he-lens:he-full !<(command:lens vase))
%json ~& jon=(need !<(json vase)) `state %json ~& jon=!<(json vase) `state
%wipe %wipe
~& %dojo-wipe ~& %dojo-wipe
=. hoc =. hoc

View File

@ -145,11 +145,7 @@
++ handle-upgrade-state ++ handle-upgrade-state
|= =old-state=vase |= =old-state=vase
=/ old-state !<(hood-1 old-state-vase) =/ old-state !<(hood-1 old-state-vase)
?~ old-state `..handle-init(lac lac.old-state)
~& %prep-lost
`..handle-init
~& %prep-found
`..handle-init(lac lac.u.old-state)
:: ::
++ handle-poke ++ handle-poke
|= [=mark =vase] |= [=mark =vase]
@ -167,16 +163,11 @@
:: XX should rename and move to libs :: XX should rename and move to libs
:: ::
?+ mark ~|([%poke-hood-bad-mark mark] !!) ?+ mark ~|([%poke-hood-bad-mark mark] !!)
%hood-load %- poke-hood-load:h %hood-load (poke-hood-load:h !<(hood-part vase))
(need !<(hood-part vase)) %atom ((wrap poke-atom):from-helm:h !<(@ vase))
%atom %- (wrap poke-atom):from-helm:h %dill-belt ((wrap poke-dill-belt):from-drum:h !<(dill-belt:dill vase))
(need !<(@ vase)) %dill-blit ((wrap poke-dill-blit):from-drum:h !<(dill-blit:dill vase))
%dill-belt %- (wrap poke-dill-belt):from-drum:h %hood-sync ((wrap poke-sync):from-kiln:h !<([desk ship desk] vase))
(need !<(dill-belt:dill vase))
%dill-blit %- (wrap poke-dill-blit):from-drum:h
(need !<(dill-blit:dill vase))
%hood-sync %- (wrap poke-sync):from-kiln:h
(need !<([desk ship desk] vase))
== ==
[cards ..handle-init] [cards ..handle-init]
:: ::

2627
pkg/arvo/age/talk.hoon Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,11 @@
++ handle-init ++ handle-init
`agent `agent
:: ::
++ handle-prep ++ handle-extract-state
~& "extracting empty state for {<dap.bowl>}"
!>(~)
::
++ handle-upgrade-state
|= old-state=vase |= old-state=vase
~& "updating agent {<dap.bowl>} by throwing away old state" ~& "updating agent {<dap.bowl>} by throwing away old state"
`agent `agent
@ -13,13 +17,13 @@
~| "unexpected poke to {<dap.bowl>} with mark {<p.cage>}" ~| "unexpected poke to {<dap.bowl>} with mark {<p.cage>}"
!! !!
:: ::
++ handle-peer ++ handle-subscribe
|= =path |= =path
~& "unexpected subscription to {<dap.bowl>} on path {<path>}" ~& "unexpected subscription to {<dap.bowl>} on path {<path>}"
~| "unexpected subscription to {<dap.bowl>} on path {<path>}" ~| "unexpected subscription to {<dap.bowl>} on path {<path>}"
!! !!
:: ::
++ handle-pull ++ handle-unsubscribe
|= path |= path
`agent `agent
:: ::
@ -28,18 +32,18 @@
~| "unexpected scry into {<dap.bowl>} on path {<path>}" ~| "unexpected scry into {<dap.bowl>} on path {<path>}"
!! !!
:: ::
++ handle-mall ++ handle-agent-response
|= [=wire =internal-gift:mall] |= [=wire =gift:agent:mall]
?- -.internal-gift ?- -.gift
%coup `agent %poke-ack `agent
%reap `agent %subscription-ack `agent
%quit %subscription-close
~| "unexpected subscription closure to {<dap.bowl>} on wire {<wire>}" ~| "unexpected subscription closure to {<dap.bowl>} on wire {<wire>}"
!! !!
:: ::
%diff %subscription-update
~| "unexpected subscription update to {<dap.bowl>} on wire {<wire>}" ~| "unexpected subscription update to {<dap.bowl>} on wire {<wire>}"
~| "with mark {<p.p.internal-gift>}" ~| "with mark {<p.cage.gift>}"
!! !!
:: ::
%http-response %http-response
@ -47,17 +51,13 @@
!! !!
== ==
:: ::
++ handle-take ++ handle-arvo-response
|= [=wire =vase] |= [=wire =sign-arvo]
~| "unexpected system response {<q.vase>} to {<dap.bowl>} on wire {<wire>}" ~| "unexpected system response {<-.sign-arvo>} to {<dap.bowl>} on wire {<wire>}"
!! !!
:: ::
++ handle-lame ++ handle-error
|= [=term =tang] |= [=term =tang]
%- (slog leaf+"error in {<dap.bowl>}" >term< tang) %- (slog leaf+"error in {<dap.bowl>}" >term< tang)
`agent `agent
::
++ handle-stay
~& "extracting empty state for {<dap.bowl>}"
!>(~)
-- --

View File

@ -220,12 +220,12 @@
++ poke ++ poke
|= [=mark =vase] |= [=mark =vase]
?+ mark ~|([%poke-drum-bad-mark mark] !!) ?+ mark ~|([%poke-drum-bad-mark mark] !!)
%drum-put =;(f (f (need !<(_+<.f vase))) poke-put) %drum-put =;(f (f !<(_+<.f vase)) poke-put)
%drum-link =;(f (f (need !<(_+<.f vase))) poke-link) %drum-link =;(f (f !<(_+<.f vase)) poke-link)
%drum-unlink =;(f (f (need !<(_+<.f vase))) poke-unlink) %drum-unlink =;(f (f !<(_+<.f vase)) poke-unlink)
%drum-exit =;(f (f (need !<(_+<.f vase))) poke-exit) %drum-exit =;(f (f !<(_+<.f vase)) poke-exit)
%drum-start =;(f (f (need !<(_+<.f vase))) poke-start) %drum-start =;(f (f !<(_+<.f vase)) poke-start)
%drum-set-boot-apps =;(f (f (need !<(_+<.f vase))) poke-set-boot-apps) %drum-set-boot-apps =;(f (f !<(_+<.f vase)) poke-set-boot-apps)
== ==
:: ::
++ reap-phat :: ack connect ++ reap-phat :: ack connect
@ -277,7 +277,7 @@
%subscription-update %subscription-update
%+ diff-sole-effect-phat t.t.wire %+ diff-sole-effect-phat t.t.wire
?> ?=(%sole-effect p.cage.gift) ?> ?=(%sole-effect p.cage.gift)
(need !<(sole-effect q.cage.gift)) !<(sole-effect q.cage.gift)
== ==
== ==
:: ::
@ -516,16 +516,16 @@
:: ::
++ se-poke :: send a poke ++ se-poke :: send a poke
|= {gyl/gill:gall par/pear} |= {gyl/gill:gall par/pear}
(se-emit %pass (en-gill gyl) %agent p.gyl q.gyl %poke par) (se-emit %pass (en-gill gyl) %agent gyl %poke par)
:: ::
++ se-peer :: send a peer ++ se-peer :: send a peer
|= gyl/gill:gall |= gyl/gill:gall
%- se-emit(fug (~(put by fug) gyl ~)) %- se-emit(fug (~(put by fug) gyl ~))
[%pass (en-gill gyl) %agent p.gyl q.gyl %subscribe /sole] [%pass (en-gill gyl) %agent gyl %subscribe /sole]
:: ::
++ se-pull :: cancel subscription ++ se-pull :: cancel subscription
|= gyl/gill:gall |= gyl/gill:gall
(se-emit %pass (en-gill gyl) %agent p.gyl q.gyl %unsubscribe ~) (se-emit %pass (en-gill gyl) %agent gyl %unsubscribe ~)
:: ::
++ se-tame :: switch connection ++ se-tame :: switch connection
|= gyl/gill:gall |= gyl/gill:gall

View File

@ -117,7 +117,7 @@
|= {her/ship mes/(unit tape)} =< abet |= {her/ship mes/(unit tape)} =< abet
%- emit %- emit
:* %pass /helm/hi/(scot %p her) :* %pass /helm/hi/(scot %p her)
%agent her %hood %poke %agent [her %hood] %poke
%helm-hi !>(?~(mes '' (crip u.mes))) %helm-hi !>(?~(mes '' (crip u.mes)))
== ==
:: ::
@ -194,20 +194,20 @@
++ poke ++ poke
|= [=mark =vase] |= [=mark =vase]
?+ mark ~|([%poke-helm-bad-mark mark] !!) ?+ mark ~|([%poke-helm-bad-mark mark] !!)
%helm-hi =;(f (f (need !<(_+<.f vase))) poke-hi) %helm-hi =;(f (f !<(_+<.f vase)) poke-hi)
%helm-mass =;(f (f (need !<(_+<.f vase))) poke-mass) %helm-mass =;(f (f !<(_+<.f vase)) poke-mass)
%helm-reload =;(f (f (need !<(_+<.f vase))) poke-reload) %helm-reload =;(f (f !<(_+<.f vase)) poke-reload)
%helm-reload-desk =;(f (f (need !<(_+<.f vase))) poke-reload-desk) %helm-reload-desk =;(f (f !<(_+<.f vase)) poke-reload-desk)
%helm-reset =;(f (f (need !<(_+<.f vase))) poke-reset) %helm-reset =;(f (f !<(_+<.f vase)) poke-reset)
%helm-send-hi =;(f (f (need !<(_+<.f vase))) poke-send-hi) %helm-send-hi =;(f (f !<(_+<.f vase)) poke-send-hi)
%helm-verb =;(f (f (need !<(_+<.f vase))) poke-verb) %helm-verb =;(f (f !<(_+<.f vase)) poke-verb)
%helm-rekey =;(f (f (need !<(_+<.f vase))) poke-rekey) %helm-rekey =;(f (f !<(_+<.f vase)) poke-rekey)
%helm-nuke =;(f (f (need !<(_+<.f vase))) poke-nuke) %helm-nuke =;(f (f !<(_+<.f vase)) poke-nuke)
%helm-automass =;(f (f (need !<(_+<.f vase))) poke-automass) %helm-automass =;(f (f !<(_+<.f vase)) poke-automass)
%helm-bonk =;(f (f (need !<(_+<.f vase))) poke-bonk) %helm-bonk =;(f (f !<(_+<.f vase)) poke-bonk)
%helm-cancel-automass =;(f (f (need !<(_+<.f vase))) poke-cancel-automass) %helm-cancel-automass =;(f (f !<(_+<.f vase)) poke-cancel-automass)
%helm-moon =;(f (f (need !<(_+<.f vase))) poke-moon) %helm-moon =;(f (f !<(_+<.f vase)) poke-moon)
%helm-serve =;(f (f (need !<(_+<.f vase))) poke-serve) %helm-serve =;(f (f !<(_+<.f vase)) poke-serve)
== ==
:: ::
++ take-agent ++ take-agent

View File

@ -185,27 +185,27 @@
++ poke ++ poke
|= [=mark =vase] |= [=mark =vase]
?+ mark ~|([%poke-kiln-bad-mark mark] !!) ?+ mark ~|([%poke-kiln-bad-mark mark] !!)
%kiln-commit =;(f (f (need !<(_+<.f vase))) poke-commit) %kiln-commit =;(f (f !<(_+<.f vase)) poke-commit)
%kiln-info =;(f (f (need !<(_+<.f vase))) poke-info) %kiln-info =;(f (f !<(_+<.f vase)) poke-info)
%kiln-label =;(f (f (need !<(_+<.f vase))) poke-label) %kiln-label =;(f (f !<(_+<.f vase)) poke-label)
%kiln-cancel =;(f (f (need !<(_+<.f vase))) poke-cancel) %kiln-cancel =;(f (f !<(_+<.f vase)) poke-cancel)
%kiln-mount =;(f (f (need !<(_+<.f vase))) poke-mount) %kiln-mount =;(f (f !<(_+<.f vase)) poke-mount)
%kiln-rm =;(f (f (need !<(_+<.f vase))) poke-rm) %kiln-rm =;(f (f !<(_+<.f vase)) poke-rm)
%kiln-schedule =;(f (f (need !<(_+<.f vase))) poke-schedule) %kiln-schedule =;(f (f !<(_+<.f vase)) poke-schedule)
%kiln-track =;(f (f (need !<(_+<.f vase))) poke-track) %kiln-track =;(f (f !<(_+<.f vase)) poke-track)
%kiln-sync =;(f (f (need !<(_+<.f vase))) poke-sync) %kiln-sync =;(f (f !<(_+<.f vase)) poke-sync)
%kiln-syncs =;(f (f (need !<(_+<.f vase))) poke-syncs) %kiln-syncs =;(f (f !<(_+<.f vase)) poke-syncs)
%kiln-wipe-ford =;(f (f (need !<(_+<.f vase))) poke-wipe-ford) %kiln-wipe-ford =;(f (f !<(_+<.f vase)) poke-wipe-ford)
%kiln-keep-ford =;(f (f (need !<(_+<.f vase))) poke-keep-ford) %kiln-keep-ford =;(f (f !<(_+<.f vase)) poke-keep-ford)
%kiln-autoload =;(f (f (need !<(_+<.f vase))) poke-autoload) %kiln-autoload =;(f (f !<(_+<.f vase)) poke-autoload)
%kiln-overload =;(f (f (need !<(_+<.f vase))) poke-overload) %kiln-overload =;(f (f !<(_+<.f vase)) poke-overload)
%kiln-wash-gall =;(f (f (need !<(_+<.f vase))) poke-wash-gall) %kiln-wash-gall =;(f (f !<(_+<.f vase)) poke-wash-gall)
%kiln-unmount =;(f (f (need !<(_+<.f vase))) poke-unmount) %kiln-unmount =;(f (f !<(_+<.f vase)) poke-unmount)
%kiln-unsync =;(f (f (need !<(_+<.f vase))) poke-unsync) %kiln-unsync =;(f (f !<(_+<.f vase)) poke-unsync)
%kiln-permission =;(f (f (need !<(_+<.f vase))) poke-permission) %kiln-permission =;(f (f !<(_+<.f vase)) poke-permission)
%kiln-cancel-autocommit =;(f (f (need !<(_+<.f vase))) poke-cancel-autocommit) %kiln-cancel-autocommit =;(f (f !<(_+<.f vase)) poke-cancel-autocommit)
%kiln-start-autoload =;(f (f (need !<(_+<.f vase))) poke-start-autoload) %kiln-start-autoload =;(f (f !<(_+<.f vase)) poke-start-autoload)
%kiln-merge =;(f (f (need !<(_+<.f vase))) poke-merge) %kiln-merge =;(f (f !<(_+<.f vase)) poke-merge)
== ==
:: ::
++ autoload ++ autoload
@ -257,14 +257,14 @@
=. cur-hoon new-hoon =. cur-hoon new-hoon
=. cur-arvo new-arvo =. cur-arvo new-arvo
=. cur-vanes rehash-vanes =. cur-vanes rehash-vanes
(emit %pass /kiln/reload/hoon %agent our %hood %poke %helm-reset !>(~)) (emit %pass /kiln/reload/hoon %agent [our %hood] %poke %helm-reset !>(~))
:: XX updates cur-vanes? :: XX updates cur-vanes?
=/ new-zuse (sys-hash /zuse/hoon) =/ new-zuse (sys-hash /zuse/hoon)
?: !=(new-zuse cur-zuse) ?: !=(new-zuse cur-zuse)
=. cur-zuse new-zuse =. cur-zuse new-zuse
=. cur-vanes rehash-vanes =. cur-vanes rehash-vanes
=/ =cage [%helm-reload !>([%zuse tracked-vanes])] =/ =cage [%helm-reload !>([%zuse tracked-vanes])]
(emit [%pass /kiln/reload/zuse %agent our %hood %poke cage]) (emit [%pass /kiln/reload/zuse %agent [our %hood] %poke cage])
(roll tracked-vanes load-vane) (roll tracked-vanes load-vane)
:: ::
++ load-vane ++ load-vane
@ -276,7 +276,7 @@
+>.$ +>.$
=. cur-vanes (~(put by cur-vanes) syd new-vane) =. cur-vanes (~(put by cur-vanes) syd new-vane)
=/ =cage [%helm-reload !>(~[syd])] =/ =cage [%helm-reload !>(~[syd])]
(emit %pass /kiln/reload/[syd] %agent our %hood %poke cage) (emit %pass /kiln/reload/[syd] %agent [our %hood] %poke cage)
:: ::
++ coup-reload ++ coup-reload
|= {way/wire saw/(unit tang)} |= {way/wire saw/(unit tang)}
@ -584,7 +584,7 @@
^+ +> ^+ +>
=/ =cage [%kiln-merge !>([syd her sud cas gem])] =/ =cage [%kiln-merge !>([syd her sud cas gem])]
%- blab :_ ~ %- blab :_ ~
[%pass /kiln/fancy/[^syd] %agent our %hood %poke cage] [%pass /kiln/fancy/[^syd] %agent [our %hood] %poke cage]
:: ::
++ spam ::|=(tang ((slog +<) ..spam)) ++ spam ::|=(tang ((slog +<) ..spam))
|*(* +>(..work (^spam +<))) |*(* +>(..work (^spam +<)))

View File

@ -105,10 +105,10 @@
++ poke ++ poke
|= [=mark =vase] |= [=mark =vase]
?+ mark ~|([%poke-write-bad-mark mark] !!) ?+ mark ~|([%poke-write-bad-mark mark] !!)
%write-sec-atom =;(f (f (need !<(_+<.f vase))) poke-sec-atom) %write-sec-atom =;(f (f !<(_+<.f vase)) poke-sec-atom)
%write-paste =;(f (f (need !<(_+<.f vase))) poke-paste) %write-paste =;(f (f !<(_+<.f vase)) poke-paste)
%write-tree =;(f (f (need !<(_+<.f vase))) poke-tree) %write-tree =;(f (f !<(_+<.f vase)) poke-tree)
%write-wipe =;(f (f (need !<(_+<.f vase))) poke-wipe) %write-wipe =;(f (f !<(_+<.f vase)) poke-wipe)
== ==
:: ::
++ made ++ made

View File

@ -10304,25 +10304,20 @@
[(nice (cell ref p.vos)) (cons [%1 burp(sut p.vos)] q.vos)] [(nice (cell ref p.vos)) (cons [%1 burp(sut p.vos)] q.vos)]
:: ::
{$zpgl *} {$zpgl *}
=+ ^= typ =/ typ (nice (play [%kttr p.gen]))
%- nice =/ val
%- fork =< q
:~ [%atom %n `0] %_ $
[%cell [%atom %n `0] [%face %u (play [%kttr p.gen])]] gol %noun
== gen
=+ ^= val :^ %wtcl
=< q :+ %cncl [%limb %levi]
%_ $ :~ [%tsbn [%zpbn [%kttr p.gen]] [%$ 2]]
gol %noun [%tsbn q.gen [%$ 2]]
gen ==
:^ %wtcl [%tsbn q.gen [%$ 3]]
:+ %cncl [%limb %levi] [%zpzp ~]
:~ [%tsbn [%zpbn [%kttr p.gen]] [%$ 2]] ==
[%tsbn q.gen [%$ 2]]
==
[%clhp [%bust %null] [%tsbn q.gen [%$ 3]]]
[%bust %null]
==
[typ val] [typ val]
:: ::
{$zpts *} [(nice %noun) [%1 q:$(vet |, gen p.gen)]] {$zpts *} [(nice %noun) [%1 q:$(vet |, gen p.gen)]]
@ -10489,11 +10484,7 @@
:: ::
{$zpgl *} {$zpgl *}
:: XX is this right? :: XX is this right?
%- beth (beth (play [%kttr p.gen]))
%- fork
:~ [%atom %n `0]
[%cell [%atom %n `0] [%face %u (play [%kttr p.gen])]]
==
:: ::
{$zpvt *} {$zpvt *}
=+ [(feel p.gen) (feel(sut dox) p.gen)] =+ [(feel p.gen) (feel(sut dox) p.gen)]
@ -10798,10 +10789,7 @@
{$zpcm *} $(gen p.gen) {$zpcm *} $(gen p.gen)
{$lost *} %void {$lost *} %void
{$zpmc *} (cell $(gen p.gen) $(gen q.gen)) {$zpmc *} (cell $(gen p.gen) $(gen q.gen))
{$zpgl *} %- fork {$zpgl *} (play [%kttr p.gen])
:~ [%atom %n `0]
[%cell [%atom %n `0] [%face %u (play [%kttr p.gen])]]
==
{$zpts *} %noun {$zpts *} %noun
{$zpvt *} ?:((feel p.gen) $(gen q.gen) $(gen r.gen)) {$zpvt *} ?:((feel p.gen) $(gen q.gen) $(gen r.gen))
{$zpzp *} %void {$zpzp *} %void

View File

@ -281,11 +281,11 @@
=. app (ap-reinstall:app result-vase) =. app (ap-reinstall:app result-vase)
ap-abet:app ap-abet:app
:: ::
=/ maybe-new-agent !<(agent result-vase) =/ maybe-new-agent (mule |.(!<(agent result-vase)))
?~ maybe-new-agent ?: ?=(%| -.maybe-new-agent)
=/ err [[%leaf "{<term>}: not valid agent"] ~] =/ err [[%leaf "{<term>}: not valid agent"] p.maybe-new-agent]
(mo-give %onto %.n err) (mo-give %onto %.n err)
=. mo-core (mo-new-agent term beak u.maybe-new-agent) =. mo-core (mo-new-agent term beak p.maybe-new-agent)
=/ old mo-core =/ old mo-core
=/ wag =/ wag
=/ =routes [disclosing=~ attributing=our] =/ =routes [disclosing=~ attributing=our]
@ -1075,10 +1075,10 @@
=/ way [(scot %p ship) %out path] =/ way [(scot %p ship) %out path]
:: ::
?: is-ok ?: is-ok
=/ =note:agent [%agent ship -.path %pump ~] =/ =note:agent [%agent [ship -.path] %pump ~]
(ap-pass way note) (ap-pass way note)
=. ap-core (ap-give %subscription-close ~) =. ap-core (ap-give %subscription-close ~)
=/ =note:agent [%agent ship -.path %unsubscribe ~] =/ =note:agent [%agent [ship -.path] %unsubscribe ~]
(ap-pass way note) (ap-pass way note)
:: +ap-dequeue: drop from queue. :: +ap-dequeue: drop from queue.
:: ::
@ -1177,12 +1177,12 @@
|= =vase |= =vase
^+ ap-core ^+ ap-core
:: ::
=/ maybe-agent !<(agent vase) =/ maybe-agent (mule |.(!<(agent vase)))
?~ maybe-agent ?: ?=(%| -.maybe-agent)
(ap-error %new-core-not-agent ~) (ap-error %new-core-not-agent p.maybe-agent)
:: ::
=/ prep =/ prep
=/ =agent u.maybe-agent =/ =agent p.maybe-agent
=/ running =/ running
%- some %- some
~(handle-extract-state agent.current-agent ap-construct-bowl) ~(handle-extract-state agent.current-agent ap-construct-bowl)

View File

@ -1913,7 +1913,7 @@
+$ card (wind note gift) +$ card (wind note gift)
+$ note +$ note
$% [%arvo =note-arvo] $% [%arvo =note-arvo]
[%agent =ship name=term =task] [%agent [=ship name=term] =task]
== ==
+$ task +$ task
$% [%subscribe-translated =mark =path] $% [%subscribe-translated =mark =path]