@@ -1,11 +1,16 @@
1−/- astrolabe
1+/- *astrolabe
22/+ naive, default-agent, dbug, agentio
33/$ udon-to-docu %udon %docu
44|%
55+$ versioned-state
66 $% state-0
77 ==
8−+$ state-0 [%0 data=(map @p @t)]
8++$ state-0
9+ $: %0
10+ spa=spawned
11+ ==
12+::
13++$ spawned (jug ship ship)
914+$ card card:agent:gall
1015--
1116%- agent:dbug
@@ -20,7 +25,8 @@
2025::
2126++ on-init
2227 ^- (quip card _this)
23− `this
28+ :_ this
29+ [%pass /azimuth-events %agent [our.bowl %azimuth] %watch /event]~
2430::
2531++ on-save on-save:def
2632++ on-load on-load:def
@@ -33,9 +39,7 @@
3339 ^- (unit (unit cage))
3440 ?+ path (on-peek:def path)
3541 [%x %point @ ~]
36− =, bowl
37− :- ~ :- ~ :- %astrolabe-point
38− !> .^(upoint:astrolabe %gx (scrio:hc %azimuth /point/[&3.path]/noun))
42+ ``astrolabe-point+!>((get-point:hc &3.path))
3943 [%x %doc ^]
4044 =/ doc-path=^path t.t.path
4145 =/ doc (read-doc:hc doc-path)
@@ -43,14 +47,121 @@
4347 `~
4448 ``json+!>(s+u.doc)
4549 ==
50+++ on-agent
51+ |= [=wire =sign:agent:gall]
52+ ^- (quip card _this)
53+ |^
54+ ?+ wire (on-agent:def wire sign)
55+ [%azimuth-events ~] (azimuth-event sign)
56+ ==
57+ ::
58+ ++ azimuth-event
59+ |= =sign:agent:gall
60+ ^- (quip card _this)
61+ ?+ -.sign [~ this]
62+ %watch-ack
63+ ?~ p.sign [~ this]
64+ =/ =tank leaf+"{(trip dap.bowl)} couldn't start listen to %azimuth"
65+ %- (slog tank u.p.sign)
66+ [~ this]
67+ ::
68+ %fact
69+ ?+ p.cage.sign (on-agent:def wire sign)
70+ %naive-diffs
71+ =+ !<(=diff:naive q.cage.sign)
72+ =^ cards state
73+ (on-naive-diff:hc diff)
74+ [cards this]
75+ ::
76+ %naive-state
77+ ~& > %received-azimuth-state
78+ :: =+ !<([nas=^state:naive =indices:dice] q.cage.sign)
79+ =+ !<([nas=^state:naive indices=*] q.cage.sign)
80+ =^ cards state
81+ (on-naive-state:hc nas)
82+ [cards this]
83+ ==
84+ ==
85+ --
4686::
47−++ on-agent on-agent:def
48−++ on-arvo on-arvo:def
49−++ on-fail on-fail:def
87+++ on-arvo on-arvo:def
88+++ on-fail on-fail:def
5089--
5190::
5291|_ =bowl:gall
5392++ scrio ~(scry agentio bowl)
93+++ put-in-spa
94+ |= =ship
95+ ^- _spa
96+ =/ parent=^ship (^sein:title ship)
97+ ?: =(parent ship)
98+ spa
99+ (~(put ju spa) parent ship)
100+++ on-naive-state
101+ |= nas=^state:naive
102+ ^- (quip card _state)
103+ =+ points=points.nas :: =points, eh?
104+ =. spa
105+ |-
106+ ^- _spa
107+ ?~ points spa
108+ =/ =ship -.n.points
109+ :: traverse tree of points and add @ps to spa with ^sein, you know
110+ =. spa (put-in-spa ship)
111+ $(points l.points, spa $(points r.points))
112+ `state
113+::
114+++ on-naive-diff
115+ |= =diff:naive
116+ ^- (quip card _state)
117+ :: =? spa (is-spawn-tx diff)
118+ =? spa ?=([%tx [* * * %spawn ship *] *] diff)
119+ %- put-in-spa
120+ ship.tx.raw-tx.diff
121+ `state
122+::
123+++ is-spawn-tx
124+ |= =diff:naive
125+ ^- ?
126+ ?= [%tx [* * * %spawn ship *] *] diff
127+::
128+++ get-point
129+ |= ship-name=term
130+ ^- point
131+ =/ =ship `@p`(slav %p ship-name)
132+ =/ unpoint (get-unpoint ship-name)
133+ :* unpoint
134+ (spa-count ship)
135+ (sponsor-chain unpoint)
136+ (probable-dominion unpoint)
137+ ==
138+::
139+++ get-unpoint
140+ |= ship-name=term
141+ .^(unpoint %gx (scrio %azimuth /point/[ship-name]/noun))
142+::
143+++ spa-count
144+ |= =ship
145+ ^- @ud
146+ %~ wyt
147+ in
148+ (~(get ju spa) ship)
149+::
150+++ sponsor-chain
151+ |= =unpoint
152+ ^- (list ship)
153+ ?~ unpoint ~
154+ =/ sponsor sponsor.net.u.unpoint
155+ ?. has.sponsor ~
156+ [who.sponsor ~] :: todo: lookup parent
157+::
158+++ probable-dominion
159+ |= =unpoint
160+ ^- dominion:naive
161+ ?^ unpoint
162+ dominion.u.unpoint
163+ %l1 :: todo: lookup parent
164+::
54165++ read-doc
55166 |= =path
56167 =/ doc-path=^path :(weld /doc/usr path /udon)