From a207caab84ddd98a7295fd794cff93d937dd6027 Mon Sep 17 00:00:00 2001 From: Liam Fitzgerald Date: Tue, 4 Jun 2024 06:01:03 -0400 Subject: [PATCH] neo: rebuild accel rendering --- pkg/arvo/app/neo.hoon | 55 +- pkg/arvo/lib/neo-two.hoon | 1 - .../neo/cod/std/src/con/accel-conf-htmx.hoon | 113 +++ pkg/arvo/neo/cod/std/src/con/accel-htmx.hoon | 37 +- .../neo/cod/std/src/con/ford-out-htmx.hoon | 686 ------------------ pkg/arvo/neo/cod/std/src/con/sky-htmx.hoon | 7 +- pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon | 7 + pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon | 4 +- pkg/arvo/neo/cod/std/src/imp/accel.hoon | 2 +- pkg/arvo/neo/cod/std/src/imp/circle.hoon | 4 +- .../cod/std/src/imp/hawk-eyre-handler.hoon | 17 +- pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon | 14 +- .../neo/cod/std/src/imp/sky-eyre-handler.hoon | 19 +- pkg/arvo/neo/cod/std/src/imp/sky-eyre.hoon | 2 +- pkg/arvo/neo/cod/std/src/lib/server.hoon | 14 + pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon | 2 +- pkg/arvo/sur/neo.hoon | 5 + 17 files changed, 229 insertions(+), 760 deletions(-) create mode 100644 pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon delete mode 100644 pkg/arvo/neo/cod/std/src/con/ford-out-htmx.hoon create mode 100644 pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon diff --git a/pkg/arvo/app/neo.hoon b/pkg/arvo/app/neo.hoon index 1eca39228b..4a6ae7268f 100644 --- a/pkg/arvo/app/neo.hoon +++ b/pkg/arvo/app/neo.hoon @@ -15,7 +15,7 @@ /* txt-ford-text %hoon /neo/cod/std/src/imp/ford-text/hoon => |% - ++ dev & + ++ dev | ++ mute ?: dev same |* * @@ -1287,10 +1287,13 @@ =+ .^(src=@t %cx `path`(welp root pax)) ?. (has-modified src (pave:neo (snip pax))) run + ~? >>> ripe [%update pax] =/ =file:ford:neo ~| parsing/pax + %- need :: XX: weird memory shit + %- mole |. (scan (trip src) (rein:ford:neo [our.bowl (pave:neo (snip pax))])) ~& [lib=lib pro=pro]:file =/ has-imports=? @@ -1660,9 +1663,10 @@ ~& >>> init =. state old :: XX: is apex only state that is touched? ?. =(~ get.block) + ~& >>> %block (fresh:stop get.block init-move) ?> ?=(^ err.block) - :: %- (slog u.err.block) + %- (slog (print-quit:neo u.err.block)) ?: ?=([%poke %rely *] q.q.move) ~& >>> rely-nack/[src dst]:init run @@ -1970,7 +1974,8 @@ ++ su-grow |= =pail:neo ^+ su-core - :: ?>(check-pail) XX: TODO + ?. (blow state:kook p.pail) + (mean leaf/"Returned bad state stud, wanted {}, have {}" ~) =. arvo (grow pail) su-core :: @@ -2299,6 +2304,14 @@ :: |util: utilties +| %util +++ blow + |= [need=curb:neo have=stud:neo] + ^- ? + ?+ -.need ~|(curb-not-supported/-.need !!) + %any & + %or (lien p.need |=(curb:neo (blow +< have))) + ?(%pro %only) =(p.need have) + == ++ puff |= [want=stud:neo role=(unit stud:neo) have=saga:neo] ^- (unit idea:neo) @@ -2314,9 +2327,15 @@ =/ rol=stud:neo (fall role %$) ?~ can=(~(get by con.dive) [p.q.have rol want]) + ~& missing-can/[p.q.have rol want] ~ =/ conv run:~(do con u.can) - `[want (slam conv q.q.have)] + ~| dead-horse/[p.q.have rol want u.can] + :+ ~ want + %+ slam conv + ?: =(p.q.have %vase) + !>(q.q.have) + q.q.have :: ++ plag =| rol=(unit stud:neo) @@ -2341,15 +2360,19 @@ `[have ~ q.have] :: %not + =/ r rol ?. =(~ loop(want p.want)) ~ + =. rol r loop(want q.want) :: %or |- ?~ p.want ~ + =/ r rol =/ nex loop(want i.p.want) + =. rol r ?^ nex `u.nex $(p.want t.p.want) @@ -2364,7 +2387,6 @@ ++ scion |= [want=lads:neo =pith:neo =saga:neo] ^- (unit idea:neo) - ?~ pis=(find:peon:neo pith ~(key by want)) ~ =/ =lash:neo (~(got by want) u.pis) @@ -2378,24 +2400,25 @@ ?: ?=($@(~ [~ ~]) pic) ~& lost-moor/name ~ - =; [fail=? res=(list (pair pith:neo idea:neo))] - ?: fail - ~ + =; [fail=(set pith:neo) res=(list (pair pith:neo idea:neo))] + :: ?. =(~ fail) + :: ~& fail-moor/fail + :: ~ + ~? !=(~ fail) + fail/fail `(gas-lore res) %+ roll ~(tap by ~(tar of:neo u.u.pic)) - |= [[=pith:neo =saga:neo] [fail=_| res=(list (pair pith:neo idea:neo))]] + |= [[=pith:neo =saga:neo] [fail=(set pith:neo) res=(list (pair pith:neo idea:neo))]] ^+ +<+ - ?: fail - [fail ~] ?: =(pith ~) ?~ rot=(plag state.p.want saga) - &/~ - |/:_(res [*pith:neo u.rot]) + [(~(put in fail) pith) res] + [fail :_(res [*pith:neo u.rot])] ?~ q.want - |/res + [(~(put in fail) pith) res] ?~ ion=(scion q.u.q.want pith saga) - &/~ - |/:_(res [pith u.ion]) + [(~(put in fail) pith) res] + [fail :_(res [pith u.ion])] :: ++ gas-leaf =| =leaf:neo diff --git a/pkg/arvo/lib/neo-two.hoon b/pkg/arvo/lib/neo-two.hoon index 08083aad1d..85a0c5b43d 100644 --- a/pkg/arvo/lib/neo-two.hoon +++ b/pkg/arvo/lib/neo-two.hoon @@ -532,4 +532,3 @@ :: !! :: ``[q.u.u.pom ever q.p.u.u.pom] -- -- - diff --git a/pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon b/pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon new file mode 100644 index 0000000000..f5de36a2a7 --- /dev/null +++ b/pkg/arvo/neo/cod/std/src/con/accel-conf-htmx.hoon @@ -0,0 +1,113 @@ +/@ accel-conf +/@ htmx +:- [%accel-conf %$ %htmx] +|= conf=accel-conf +|= =bowl:neo +|^ +:: +;div.fr + ;form.fr.af.js.hf + =hx-post "/neo/hawk/{(en-tape:pith:neo here.bowl)}?stud=hoon" + =hx-trigger "input changed delay:0.4s from:find textarea, input changed delay:0.4s from:[name='a']" + =hx-swap "outerHTML" + =hx-target "#spinner .loading" + =hx-target-400 "#error-{id}" + =hx-indicator "#spinner" + =row (scow %ud +:x) + =col (scow %ud +:y) + ;div.fc.border.grow.basis-half.wf + ;+ conf-header + ;+ input + == + == + ;div.fc + ;h3: Add + ;form.fr.af.js.hf + =hx-post "/neo/hawk/{(en-tape:pith:neo here.bowl)}?stud=deps" + =hx-trigger "input changed delay:0.4s from:find textarea, input changed delay:0.4s from:[name='a']" + =hx-swap "outerHTML" + =hx-target "#spinner .loading" + =hx-target-400 "#error-{id}" + =hx-indicator "#spinner" + =row (scow %ud +:x) + =col (scow %ud +:y) + ;div.fc.border.grow.basis-half.wf + ;+ conf-header + ;+ input + == + == + + ;h3: Dependencies + ;div#config.grow.border.basis-half.fc.scroll-x.scroll-y + ;+ spinner + ;* + %+ turn ~(tap by crew.conf) + |= [=term =pith:neo] + (deps (trip term) pith) + == + == +== +++ id + ^- tape + %- zing + %+ turn (pout (tail here.bowl)) + |= smeg=@ta + %+ weld "--" + (trip smeg) + :: +++ x (rear (snip (snip here.bowl))) +++ y (rear (snip here.bowl)) +++ spinner + ;div#spinner.b1.loader.p1.s-2.f2 + ;span.loaded: saved + ;span.loading: --- + == +++ conf-header + ;div.b1.border.fr.ac.jb.p1 + ;span.p1.mono.s-1: /{(scow %ud +:x)}/{(scow %ud +:y)} + ;button.br1.border.b1.hover + =style "padding: 4px 8px;" + =type "button" + =pith "/{(scow %p our.bowl)}{(en-tape:pith:neo here.bowl)}" + =onclick "navigator.clipboard.writeText(this.getAttribute('pith'));" + ; copy path + == + == +++ input + ;textarea#input.wf.p2.pre.mono.grow + =name "code" + =placeholder "code" + =spellcheck "false" + =value (trip hoon.conf) + =oninput "this.setAttribute('value', this.value);" + ; {(trip hoon.conf)} + == +++ deps + |= [term=tape =pith:neo] + ;label.fc.p1 + ;input.border.wf + =value term + =placeholder "var-name" + =autocomplete "off" + =oninput "this.setAttribute('value', this.value);" + =name term + ; + == + ;input.border.wf + =placeholder "/{(scow %p our.bowl)}/path/to/dep" + =value (en-tape:pith:neo pith) + =autocomplete "off" + =oninput "this.setAttribute('value', this.value);" + =name :(welp term "-" "value") + ; {(en-tape:pith:neo pith)} + == + == +++ error + |= =tang + ;div.pre.mono.p2 + ;* + %+ turn (scag 25 tang) + |= =tank + ;span: {(of-wall:format (~(win re tank) 0 80))} + == +-- diff --git a/pkg/arvo/neo/cod/std/src/con/accel-htmx.hoon b/pkg/arvo/neo/cod/std/src/con/accel-htmx.hoon index efacc0ad84..91206b8cd2 100644 --- a/pkg/arvo/neo/cod/std/src/con/accel-htmx.hoon +++ b/pkg/arvo/neo/cod/std/src/con/accel-htmx.hoon @@ -1,5 +1,7 @@ /@ accel /@ accel-cell +/@ accel-conf +/@ htmx :- [%accel %$ %htmx] |= =accel |= =bowl:neo @@ -13,7 +15,7 @@ ++ id ^- tape %- zing - %+ turn (pout here.bowl) + %+ turn (pout (tail here.bowl)) |= smeg=@ta %+ weld "--" (trip smeg) @@ -38,29 +40,32 @@ ;* %+ turn (gulf 1 10) |= y=@ - =/ val=(unit pail:neo) ~::(~(get by kids.bowl) ~[ud/x ud/y]) - =/ vaf (fall val [%accel-cell !>(*accel-cell)]) + =/ pax=pith:neo #/[ud/x]/[ud/y] + =/ kid bowl + =. kids.kid [~ ~] + =. here.kid :(welp here.bowl pax) + =. deps.kid ~ + =/ in=manx + ?~ res=(~(get of:neo kids.bowl) (snoc pax %in)) + *manx + =. here.kid (snoc here.kid %in) + (!<(htmx q.pail.u.res) kid) + =/ out=manx + ?~ res=(~(get of:neo kids.bowl) (snoc pax %out)) + *manx + =. here.kid (snoc here.kid %out) + (!<(htmx q.pail.u.res) kid) ;td.border ;+ - =/ cell !<(accel-cell +:vaf) ;button.b1.scroll-none.hover.cell-btn.p2.wf.hf =id "cell-{id}-{}-{}" - =hx-get "/neo/hawk{(en-tape:pith:neo here.bowl)}/{}/{}" + =hx-get "/neo/hawk{(en-tape:pith:neo here.bowl)}/{}/{}/in" =hx-target "#dashboard-{id}" =hx-swap "innerHTML" =morph-retain "class" =onclick "$('.cell-btn').removeClass('toggled');$(this).addClass('toggled');" - ;+ - ?~ result.cell ;/("") - =/ res (need result.cell) - ?- -.res - %.y - ;div.mono - ;+ - ;/ (of-wall:format (~(win re (sell +.res)) 0 80)) - == - %.n - ;span: ERROR + ;div.mono + ;+ out == == == diff --git a/pkg/arvo/neo/cod/std/src/con/ford-out-htmx.hoon b/pkg/arvo/neo/cod/std/src/con/ford-out-htmx.hoon deleted file mode 100644 index ae2a8f3458..0000000000 --- a/pkg/arvo/neo/cod/std/src/con/ford-out-htmx.hoon +++ /dev/null @@ -1,686 +0,0 @@ -:- [%vase %$ %htmx] -=/ debug | -|= v=vase -|= =bowl:neo -^- manx -=< apex -|% -++ dprint -=> - :: dprint-types - |% - :: $overview: an overview of all named things in the type. - :: - :: each element in the overview list is either a documentation for a sublist - :: or an association betwen a term and documentation for it - +$ overview (list overview-item) - :: - :: $overview-item: an element of an overview - +$ overview-item - $% [%header doc=what children=overview] - [%item name=tape doc=what] - == - :: - :: $item: the part of a type being inspected - +$ item - $% - :: overview of a type - :: - [%view items=overview] - :: inspecting a full core - $: %core - name=tape :: arm that built it - docs=what :: - sut=type :: [%core *] - children=(unit item) :: compiled against - == - :: inspecting a single arm on a core - $: %arm - name=tape :: arm name - adoc=what :: arm doc - pdoc=what :: product doc - cdoc=what :: $ arm/prod doc - gen=hoon :: arm hoon AST - sut=type :: subject of arm - == - :: inspecting a face and what's behind it - $: %face - name=tape :: name of face - docs=what :: - children=(unit item) :: face referent - == - :: inspecting a single chapter on a core - $: %chapter - name=tape :: name of chapter - docs=what :: - sut=type :: [%core *] - tom=tome :: tome of chapter - == - == - :: - -- -:: dprint -:: -:: core containing doccords search and printing utilities -|% -:: contains arms used for looking for docs inside of a type -:: -:: the entrypoint for finding docs within a type is +find-item-in-type. -+| %searching -:: +find-item-in-type: returns the item to print while searching through topic -:: -:: this gate is a thin wrapper around _hunt for usability, since the only entry -:: point most users should care about is find-item:hunt -:: -++ find-item-in-type - |= [topics=(list term) sut=type] - ?~ topics !! - =/ top=(lest term) topics - ~(find-item hunt [top sut]) -:: -:: +hunt: door used for refining the type while searching for doccords -:: -++ hunt - =| gil=(set type) - |_ [topics=(lest term) sut=type] - +* this . - :: - +| %find - :: - ++ find-item - ~? >> debug %find-item - ^- (unit item) - ?- sut - %noun ~ - %void ~ - [%atom *] ~ - [%cell *] find-cell - [%core *] find-core - [%face *] find-face - [%fork *] find-fork - [%hint *] find-hint - [%hold *] find-item:this(sut (~(play ut p.sut) q.sut)) - == - :: - ++ find-cell - ~? >> debug %find-cell - ^- (unit item) - ?> ?=([%cell *] sut) - =/ lhs find-item:this(sut p.sut) - ?~ lhs - find-item:this(sut q.sut) - lhs - :: - ++ find-core - ~? >> debug %find-core - ^- (unit item) - ?> ?=([%core *] sut) - ?: check-arm - ?: check-search - ?: check-arm-core - return-arm-core - return-arm - recurse-arm-core - ?: check-chap - ?: check-search - return-chap - recurse-chap - recurse-core - :: - ++ find-face - ~? >> debug %find-face - ^- (unit item) - ?> ?=([%face *] sut) - ?. ?=(term p.sut) - ::TODO: handle $tune case - find-item:this(sut q.sut) - ?. =(i.topics p.sut) - ~ - ?~ t.topics - return-face - find-item:this(sut q.sut, topics t.topics) - :: - ++ find-fork - ~? >> debug %find-fork - ^- (unit item) - ?> ?=([%fork *] sut) - =/ types=(list type) ~(tap in p.sut) - |- - ?~ types ~ - =+ res=find-item:this(sut i.types) - ?~ res - $(types t.types) - res - :: - ++ find-hint - ~? >> debug %find-hint - ^- (unit item) - |^ - ?> ?=([%hint *] sut) - ?. ?=([%help *] q.p.sut) - find-item:this(sut q.sut) - ?+ q.sut ~ - [%cell *] find-cell:this(sut q.sut) - [%core *] find-hint-core - [%face *] find-hint-face - [%fork *] find-fork:this(sut q.sut) - [%hint *] find-hint:this(sut q.sut) - [%hold *] find-hint:this(q.sut (~(play ut p.q.sut) q.q.sut)) - == - :: - ++ find-hint-core - ~? >> debug %find-hint-core - ^- (unit item) - ?> &(?=([%hint *] sut) ?=([%help *] q.p.sut) ?=([%core *] q.sut)) - :: - ?. ?& ((sane %tas) summary.crib.p.q.p.sut) - =(summary.crib.p.q.p.sut i.topics) - == - find-core:this(sut q.sut) - ?~ t.topics - return-hint-core - find-item:this(sut q.sut, topics t.topics) - :: - ++ find-hint-face - ~? >> debug %find-hint-face - ^- (unit item) - ?> &(?=([%hint *] sut) ?=([%help *] q.p.sut) ?=([%face *] q.sut)) - ?: check-face:this(sut q.sut) - ?~ t.topics - return-hint-face - find-item:this(sut q.q.sut, topics t.topics) - find-item:this(sut q.q.sut) - -- - :: - ::+| %recurse - ++ recurse-core - ~? >> debug %recurse-core - ^- (unit item) - ?> ?=([%core *] sut) - find-item:this(sut p.sut) - ++ recurse-chap - ~? >> debug %recurse-chap - ^- (unit item) - ?> ?=([%core *] sut) - ?~ t.topics !! - find-item:this(topics t.topics) - ++ recurse-arm-core - ~? >> debug %recurse-arm-core - ^- (unit item) - ?> ?=([%core *] sut) - ?~ t.topics !! - find-item:this(sut arm-type, topics t.topics) - :: - +| %check - :: - ++ check-arm - ~? >> debug %recurse-core - ^- ? - !=(~ (find ~[i.topics] (sloe sut))) - ++ check-chap - ~? >> debug %check-chap - ^- ? - ?> ?=([%core *] sut) - (~(has by q.r.q.sut) i.topics) - ++ check-face - ~? >> debug %check-face - ^- ? - ?> ?=([%face *] sut) - ?. ?=(term p.sut) - ::TODO: handle $tune case - %.n - =(p.sut i.topics) - ++ check-search - ~? >> debug %check-search - ^- ? - =(~ t.topics) - ++ check-arm-core - ~? >> debug %check-arm-core - ^- ? - =+ arm-list=(sloe (~(play ut sut) arm-hoon)) - &(!=(arm-list ~) !=(arm-list ~[%$]) ?=([%core *] arm-type)) - :: - +| %return - :: - ++ return-cell - ~? >>> debug %return-cell - ^- (unit item) - ?> ?=([%cell *] sut) - (join-items return-item:this(sut p.sut) return-item:this(sut q.sut)) - :: - ++ return-core - ~? >>> debug %return-core - ^- (unit item) - ?> ?=([%core *] sut) - =* compiled-against return-item:this(sut p.sut) - `[%core (trip i.topics) *what sut compiled-against] - :: - ++ return-face - ~? >>> debug %return-face - ^- (unit item) - ?> ?=([%face *] sut) - :: TODO: handle tune case - ?. ?=(term p.sut) - return-item:this(sut q.sut) - =* compiled-against return-item:this(sut q.sut) - `[%face (trip p.sut) *what compiled-against] - :: - ++ return-fork - ~? >>> debug %return-fork - ^- (unit item) - ?> ?=([%fork *] sut) - =* types ~(tap in p.sut) - =* items (turn types |=(a=type return-item:this(sut a))) - (roll items join-items) - :: - ++ return-hint - ~? >>> debug %return-hint - ^- (unit item) - ?> ?=([%hint *] sut) - =* res return-item:this(sut q.sut) - ?. ?=([%help *] q.p.sut) - ~ - ?: ?=([%core *] q.sut) - return-hint-core - ?: ?=([%face *] q.sut) - return-hint-face - `[%view [%header `crib.p.q.p.sut (item-as-overview res)]~] - :: - ++ return-arm - ~? >>> debug %return-arm - ^- (unit item) - ?> ?=([%core *] sut) - =+ [adoc pdoc cdoc]=(arm-docs i.topics sut) - ::TODO: should this p.sut be sut? or the compiled type of the arm? - `[%arm (trip i.topics) adoc pdoc cdoc arm-hoon sut] - :: - ++ return-chap - ~? >>> debug %return-chap - ^- (unit item) - ?> ?=([%core *] sut) - =/ tom=tome (~(got by q.r.q.sut) i.topics) - `[%chapter (trip i.topics) p.tom sut (~(got by q.r.q.sut) i.topics)] - :: - ++ return-arm-core - ~? >>> debug %return-arm-core - ^- (unit item) - ?> ?=([%core *] sut) - =+ [adoc pdoc cdoc]=(arm-docs i.topics sut) - =/ dox=what ?~(adoc ?~(pdoc ~ pdoc) adoc) - =/ at arm-type - ?> ?=([%core *] at) - =* compiled-against return-item:this(sut p.sut) - `[%core (trip i.topics) dox at compiled-against] - :: - ++ return-item - ~? >>> debug %return-item - ^- (unit item) - ?- sut - %noun ~ - %void ~ - [%atom *] ~ - [%cell *] return-cell - [%core *] return-core - [%face *] return-face - [%fork *] return-fork - [%hint *] return-hint - [%hold *] - ?: (~(has in gil) sut) - ~ - =< return-item - %= this - gil (~(put in gil) sut) - sut (~(play ut p.sut) q.sut) - == - == - :: - ++ return-hint-core - ~? >>> debug %return-hint-core - ^- (unit item) - ?> &(?=([%hint *] sut) ?=([%core *] q.sut)) - (apply-hint return-core:this(sut q.sut)) - :: - ++ return-hint-face - ~? >>> debug %return-hint-face - ^- (unit item) - ?> &(?=([%hint *] sut) ?=([%face *] q.sut)) - (apply-hint return-face:this(sut q.sut)) - :: - ++ apply-hint - ~? >> debug %apply-hint - |= uit=(unit item) - ^- (unit item) - ?~ uit ~ - ?> &(?=([%hint *] sut) ?=([%help *] q.p.sut)) - ?+ u.uit ~ - ?([%core *] [%face *]) (some u.uit(docs `crib.p.q.p.sut)) - == - :: - +| %misc - ++ arm-hoon - ^- hoon - ?> ?=([%core *] sut) - (^arm-hoon i.topics sut) - :: - ++ arm-type - ^- type - ?> ?=([%core *] sut) - (^arm-type i.topics sut) - -- -:: -:: +arm-hoon: looks for an arm in a core type and returns its hoon -++ arm-hoon - |= [nom=term sut=type] - ^- hoon - ?> ?=([%core *] sut) - =/ tomes=(list [p=term q=tome]) ~(tap by q.r.q.sut) - |- - ?~ tomes !! - =+ gen=(~(get by q.q.i.tomes) nom) - ?~ gen - $(tomes t.tomes) - u.gen -:: -:: +arm-type: looks for an arm in a core type and returns its type -++ arm-type - |= [nom=term sut=type] - ^- type - ?> ?=([%core *] sut) - (~(play ut sut) (arm-hoon nom sut)) -:: -:: +hint-doc: returns docs if type is %help $hint w/ matching cuff -++ hint-doc - |= [=cuff sut=type] - ^- what - ?. &(?=([%hint *] sut) ?=([%help *] q.p.sut) =(cuff cuff.p.q.p.sut)) - ~ - `crib.p.q.p.sut -:: -:: +arm-doc: returns arm doc of an arm -:: -:: we just check if the $cuff is from a ++ or +$ arm but this will -:: probably need to be revisited once more sophisticated cuffs are used -++ arm-doc - |= [nom=term sut=type] - ^- what - ?~ (hint-doc [%funk nom]~ sut) - (hint-doc [%plan nom]~ sut) - (hint-doc [%funk nom]~ sut) -:: -:: +prod-doc: wrapper for +hint-doc with empty cuff -++ prod-doc - |= sut=type - ^- what - (hint-doc ~ sut) -:: -:: +buc-doc: checks if type is core and returns docs on $ arm if it exists -++ buc-doc - |= sut=type - ^- what - ?. ?=([%core *] sut) - ~ - ?~ (find [%$]~ (sloe sut)) - ~ - =/ sat=type (arm-type %$ sut) - ?~ (arm-doc %$ sat) - (prod-doc sat) - (arm-doc %$ sat) -:: -:: +arm-docs: grabs the docs for an arm. -:: -:: there are three possible places with relevant docs for an arm: -:: docs for the arm itself, docs for the product of the arm, and -:: if the arm builds a core, docs for the default arm of that core. -:: -:: .adoc: docs written above the the arm -:: .pdoc: docs for the product of the arm -:: .cdoc: docs for the default arm of the core produced by the arm -++ arm-docs - |= [nom=term sut=type] - ^- [what what what] - ?> ?=([%core *] sut) - =/ sat=type (~(play ut sut) (arm-hoon nom sut)) - =/ adoc=what (arm-doc nom sat) - =/ pdoc=what - ?~ adoc - (prod-doc sat) - ?> ?=([%hint *] sat) - (prod-doc q.sat) - =/ cdoc=what - ?~ adoc - ?~ pdoc - (buc-doc sat) - ?> ?=([%hint *] sat) - (buc-doc q.sat) - ?~ pdoc - ?> ?=([%hint *] sat) - (buc-doc q.sat) - ?> &(?=([%hint *] sat) ?=([%hint *] q.sat)) - (buc-doc q.q.sat) - [adoc pdoc cdoc] -:: -:: +arm-and-chapter-overviews: returns an overview of a core's contents -:: -:: returns an overview for arms which are part of unnamed chapters, and -:: an overview of the named chapters -:: -++ arm-and-chapter-overviews - |= =item - ^- [overview overview] - ?> &(?=([%core *] item) ?=([%core *] sut.item)) - =| [adocs=overview cdocs=overview] - =/ tomes ~(tap by q.r.q.sut.item) - |- - ?~ tomes - [(sort-overview adocs) (sort-overview cdocs)] - ?~ p.i.tomes - :: chapter has no name. add documentation for its arms to arm-docs - =. adocs (weld adocs (tome-as-overview q.i.tomes sut.item)) - $(tomes t.tomes) - :: chapter has a name. add to list of chapters - =. cdocs - %+ weld cdocs - ^- overview - [%item :(weld "^" name.item "|" (trip -.i.tomes)) p.q.i.tomes]~ - $(tomes t.tomes) -:: -:: +arms-in-chapter: returns an overview of the arms in a specific chapter -++ arms-in-chapter - |= [sut=type tom=tome] - ^- overview - (sort-overview (tome-as-overview tom sut)) -:: -:: +sort-overview: sort items in an overview in alphabetical order -++ sort-overview - |= ovr=overview - ^- overview - %+ sort ovr - |= [lhs=overview-item rhs=overview-item] - (aor (get-overview-name lhs) (get-overview-name rhs)) -:: -:: +get-overview-name: returns the name of an overview -++ get-overview-name - |= ovr=overview-item - ?- ovr - [%header *] "" - [%item *] name.ovr - == -:: -:: +tome-as-overview: translate a tome into an overview -++ tome-as-overview - |= [tom=tome sut=type] - ^- overview - %+ turn ~(tap by q.tom) - |= ar=(pair term hoon) - :* %item - ::TODO make this distinguish between ++ and +$ arms - (weld "+" (trip p.ar)) - =/ adoc (arm-doc p.ar (~(play ut sut) q.ar)) - =/ pdoc (prod-doc (~(play ut sut) q.ar)) - ?~ adoc - pdoc - adoc - == -:: -:: +item-as-overview: changes an item into an overview -++ item-as-overview - |= uit=(unit item) - ~? >> debug %item-as-overview - ^- overview - ?~ uit ~ - =+ itm=(need uit) - ?- itm - [%view *] items.itm - :: - [%core *] - ?~ name.itm - (item-as-overview children.itm) - :- [%item (weld "^" name.itm) docs.itm] - (item-as-overview children.itm) - :: - [%arm *] - :_ ~ - ::TODO make this distinguish between ++ and +$ arms - :* %item (weld "+" name.itm) - ?~ adoc.itm - ?~ pdoc.itm - cdoc.itm - pdoc.itm - adoc.itm - == - :: - [%chapter *] - [%item (weld "|" name.itm) docs.itm]~ - :: - [%face *] - ?~ name.itm - ~ - [%item (weld "." name.itm) docs.itm]~ - == -:: -:: +join-items: combines two (unit items) together -++ join-items - |= [lhs=(unit item) rhs=(unit item)] - ^- (unit item) - ?~ lhs rhs - ?~ rhs lhs - `[%view (weld (item-as-overview lhs) (item-as-overview rhs))] --- - -:: XX: non-std -++ post-href - |= =post:neo - ^- path - ?> ?=(@ q.post) - =/ dsk - /neo/hawk/out/std - %+ welp dsk - /[p.post]/[q.post] -:: -++ apex - ;div - ;+ - (have v) - == -++ empty - ;h4: No build result here -++ fallback - |= vax=vase - ;div - ;* - =/ arms (sloe p.vax) - %+ turn arms - |= a=term - ^- manx - (desc-arm a p.vax) - == -++ over-to-manx - |= ove=overview:dprint - ^- manx - ;div - ;* - %+ turn ove - |= tem=overview-item:dprint - ^- manx - (over-item-to-manx tem) - == -++ what-to-manx - |= wat=what - ^- manx - ?~ wat - ;div: Nothing here - ;div.what - ;h6: {(trip p.u.wat)} - ;div - ;* ^- (list manx) - %- zing - ^- (list (list manx)) - %+ turn q.u.wat - |= sec=sect - ^- (list manx) - %+ turn sec - |= pic=pica - ^- manx - ?: p.pic - ;div: {(trip q.pic)} - ;code.pre: {(trip q.pic)} - == - == -++ over-item-to-manx - |= tem=overview-item:dprint - ^- manx - ?- -.tem - %header - ;div.over-item-head - ;+ (what-to-manx doc.tem) - ;+ (over-to-manx children.tem) - == - :: - %item - ;div.over-item-item - ;h6: {name.tem} - ;+ (what-to-manx doc.tem) - == - == -++ desc-arm - |= [arm=term sut=type] - ^- manx - =/ tem (find-item-in-type:dprint ~[arm] sut) - ~& tem/tem - (over-to-manx (item-as-overview:dprint tem)) - -++ have - |= vax=vase - =/ fim=(unit kook:neo) - (mole |.(!<(kook:neo vax))) - ?> ?=(^ fim) - ;div.p2.fc.g2 - ;h4: Shrub implementation - ;h5: State - ;div.frw.g2 - ;* - %+ turn ~(tap in (curt:neo state:u.fim)) - |= =post:neo - ^- manx - ;button.p2.br1.b1.hover - =hx-get (spud (post-href post)) - =hx-target "closest .hawk" - =hx-swap "innerHTML" - ; {} {} - == - == - ;h5: Pokes - ;div.frw.g2 - ;* - %+ turn ~(tap in poke:u.fim) - |= =stud:neo - ^- manx - ;button.p2.br1.b1.hover - =hx-get (spud (post-href %pro stud)) - =hx-target "closest .hawk" - =hx-swap "innerHTML" - ; {} - == - == - == --- diff --git a/pkg/arvo/neo/cod/std/src/con/sky-htmx.hoon b/pkg/arvo/neo/cod/std/src/con/sky-htmx.hoon index 8ee95ada1b..1869e704d6 100644 --- a/pkg/arvo/neo/cod/std/src/con/sky-htmx.hoon +++ b/pkg/arvo/neo/cod/std/src/con/sky-htmx.hoon @@ -35,9 +35,10 @@ ^- (unit sky-settings) =/ s (~(get of:neo kids.bowl) /settings) ?~ s ~ - :- ~ - !< sky-settings - q.pail.u.s + ~ +:: :- ~ +:: !< sky-settings +:: q.pail.u.s ;style ;+ ;/ ?~ settings diff --git a/pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon b/pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon new file mode 100644 index 0000000000..c25f3ed516 --- /dev/null +++ b/pkg/arvo/neo/cod/std/src/con/vase-htmx.hoon @@ -0,0 +1,7 @@ +:- [%vase %$ %htmx] +|= vax=vase +|= =bowl:neo +;div.pre.mono.p2 + ;+ + ;/ (of-wall:format (~(win re (sell vax)) 0 80)) +== diff --git a/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon b/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon index f9acef1016..4d57262762 100644 --- a/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/accel-conf.hoon @@ -35,7 +35,7 @@ |= =bowl:neo ^- pail:neo =/ res=(each vase tang) - (mule |.((slap (get-prelude bowl) hoon.conf))) + (mule |.((slap (get-prelude bowl) (ream hoon.conf)))) ?: ?=(%& -.res) vase/p.res tang/!>(p.res) @@ -80,7 +80,7 @@ =+ !<(conf=accel-conf q.pail) =. conf ?+ stud !! - %hoon conf(ready |, hoon !<(hoon vax)) + %hoon conf(ready |, hoon !<(@t vax)) %accel-dep conf(ready |, crew (~(put by crew.conf) !<([term pith] vax))) %accel-conf !<(accel-conf vax) %ack ((slog leaf/"ack" (sell vax) ~) conf(ready &)) diff --git a/pkg/arvo/neo/cod/std/src/imp/accel.hoon b/pkg/arvo/neo/cod/std/src/imp/accel.hoon index 812ca5237c..56ffbb347f 100644 --- a/pkg/arvo/neo/cod/std/src/imp/accel.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/accel.hoon @@ -72,7 +72,7 @@ %accel-diff (on-diff !<(accel-diff vax)) %gift (on-gift !<(gift:neo vax)) == - [cards accell/!>(state)] + [cards accel/!>(state)] ++ on-diff |= poke=accel-diff ?> =(our ship.src):bowl diff --git a/pkg/arvo/neo/cod/std/src/imp/circle.hoon b/pkg/arvo/neo/cod/std/src/imp/circle.hoon index c62df24d54..ac351ec8b9 100644 --- a/pkg/arvo/neo/cod/std/src/imp/circle.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/circle.hoon @@ -2,7 +2,7 @@ /@ diff=circle-diff ^- kook:neo |% -++ state pro/%sig +++ state pro/%circle ++ poke (sy %circle-diff ~) ++ kids :+ ~ %y @@ -31,6 +31,6 @@ == ++ init |= pal=(unit pail:neo) - `sig/!>(~) + `circle/!>(~) -- -- diff --git a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre-handler.hoon b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre-handler.hoon index ee07b1e6d4..9e36ed6afc 100644 --- a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre-handler.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre-handler.hoon @@ -5,11 +5,13 @@ |% ++ main ^- curb:neo - [%or rol/[%ui-main pro/%htmx] pro/%htmx ~] + ::[%or rol/[%ui-main pro/%htmx] pro/%htmx ~] :: rol/[%ui-main pro/%htmx] + pro/%htmx ++ kids-curb ^- curb:neo - any/~ + ::[%or rol/[%ui-cell pro/%htmx] pro/%htmx ~] + pro/%htmx :: rol/[%ui-list pro/%htmx] ++ manx-to-octs |= man=manx @@ -200,19 +202,14 @@ `pail ++ init |= pal=(unit pail:neo) + ^- (quip card:neo pail:neo) =/ [=stud:neo =vase] (need pal) =+ !<([eyre-id=@ta req=inbound-request:eyre] vase) :_ [stud vase] =/ =pith:neo #/[p/our.bowl]/$/eyre =; =manx - =/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]] - =/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)] - =/ done=sign:eyre:neo [eyre-id %done ~] - :~ [pith %poke eyre-sign/!>(head)] - [pith %poke eyre-sign/!>(data)] - [pith %poke eyre-sign/!>(done)] - [here.bowl %cull ~] - == + %- ~(respond neo:serv pith) + [eyre-id (manx-response:gen:serv manx)] ?~ src=(~(get by deps.bowl) %src) ;div: 404 =/ root=idea:neo (~(got of:neo q.u.src) /) diff --git a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon index 67c7baba01..6bd68b4ad6 100644 --- a/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/hawk-eyre.hoon @@ -2,7 +2,7 @@ /- serv=server ^- kook:neo |% -++ state pro/%eyre-reqs +++ state pro/%sig ++ poke (sy %eyre-task ~) ++ kids :+ ~ %y @@ -26,18 +26,12 @@ ?. ?=([[%p @] *] inner) =/ =manx ;div: 400 - =/ =pith:neo #/[p/our.bowl]/$/eyre - =/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]] - =/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs:serv manx)] - =/ done=sign:eyre:neo [eyre-id %done ~] + =/ eyre=pith:neo #/[p/our.bowl]/$/eyre :_ sig/!>(~) - :~ [pith %poke eyre-sign/!>(head)] - [pith %poke eyre-sign/!>(data)] - [pith %poke eyre-sign/!>(done)] - [here.bowl %cull ~] - == + (~(respond neo:serv eyre) eyre-id (manx-response:gen:serv manx)) =/ args (~(gas by *(map @t @t)) args.lin) =/ =crew:neo (~(gas by *crew:neo) src/inner ~) + ~& crew/crew :_ sig/!>(~) :~ [(welp here.bowl #/[uv/eny.bowl]) %make %hawk-eyre-handler `[stud vax] crew] == diff --git a/pkg/arvo/neo/cod/std/src/imp/sky-eyre-handler.hoon b/pkg/arvo/neo/cod/std/src/imp/sky-eyre-handler.hoon index 91afd22ce2..f7b20a2b7c 100644 --- a/pkg/arvo/neo/cod/std/src/imp/sky-eyre-handler.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/sky-eyre-handler.hoon @@ -16,11 +16,12 @@ |% ++ main ^- curb:neo - [%or rol/[%ui-main pro/%htmx] pro/%htmx ~] + pro/%htmx + :: [%or rol/[%ui-main pro/%htmx] pro/%htmx ~] :: rol/[%ui-main pro/%htmx] ++ kids-curb ^- curb:neo - any/~ + pro/%htmx :: rol/[%ui-list pro/%htmx] ++ manx-to-octs |= man=manx @@ -212,7 +213,7 @@ ^- quay:neo :- [main ~] ^- (unit port:neo) - :+ ~ %y + :+ ~ %z %- ~(gas by *lads:neo) :~ :- & `lash:neo`[kids-curb ~] @@ -232,14 +233,9 @@ :_ [stud vase] =/ =pith:neo #/[p/our.bowl]/$/eyre =; =manx - =/ head=sign:eyre:neo [eyre-id %head [200 [['content-type' 'text/html'] ~]]] - =/ data=sign:eyre:neo [eyre-id %data `(manx-to-octs manx)] - =/ done=sign:eyre:neo [eyre-id %done ~] - :~ [pith %poke eyre-sign/!>(head)] - [pith %poke eyre-sign/!>(data)] - [pith %poke eyre-sign/!>(done)] - [here.bowl %cull ~] - == + %+ snoc + (~(respond neo:serv pith) [eyre-id (manx-response:gen:serv manx)]) + [here.bowl %cull ~] ?~ src=(~(get by deps.bowl) %src) ;div: 404 =/ root=idea:neo (~(got of:neo q.u.src) /) @@ -250,6 +246,7 @@ =. now.bol now.bowl =. eny.bol eny.bowl =. kids.bol q.u.src + ~& kids/~(key by ~(tar of:neo kids.bol)) :: XX src.bowl (lift (!<(htmx q.pail.root) bol)) -- diff --git a/pkg/arvo/neo/cod/std/src/imp/sky-eyre.hoon b/pkg/arvo/neo/cod/std/src/imp/sky-eyre.hoon index 2465b25a0a..d3206353a4 100644 --- a/pkg/arvo/neo/cod/std/src/imp/sky-eyre.hoon +++ b/pkg/arvo/neo/cod/std/src/imp/sky-eyre.hoon @@ -2,7 +2,7 @@ /- serv=server ^- kook:neo |% -++ state pro/%eyre-reqs +++ state pro/%sig ++ poke (sy %eyre-task ~) ++ kids :+ ~ %y diff --git a/pkg/arvo/neo/cod/std/src/lib/server.hoon b/pkg/arvo/neo/cod/std/src/lib/server.hoon index 366b05d946..411d847e44 100644 --- a/pkg/arvo/neo/cod/std/src/lib/server.hoon +++ b/pkg/arvo/neo/cod/std/src/lib/server.hoon @@ -165,4 +165,18 @@ ^- simple-payload:http [[307 ['location' redirect]~] ~] -- +++ neo + |_ eyre=pith:^neo + ++ respond + |= [eyre-id=@ta pay=simple-payload:http] + ^- (list card:^neo) + =/ head=sign:eyre:^neo [eyre-id %head response-header.pay] + =/ data=sign:eyre:^neo [eyre-id %data data.pay] + =/ done=sign:eyre:^neo [eyre-id %done ~] + :~ [eyre %poke eyre-sign/!>(head)] + [eyre %poke eyre-sign/!>(data)] + [eyre %poke eyre-sign/!>(done)] + == + -- + -- diff --git a/pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon b/pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon index 19e0dad33c..fcee8e0fe1 100644 --- a/pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon +++ b/pkg/arvo/neo/cod/std/src/pro/accel-conf.hoon @@ -1,4 +1,4 @@ -$: =hoon +$: hoon=_'~' =crew:neo ready=_| == diff --git a/pkg/arvo/sur/neo.hoon b/pkg/arvo/sur/neo.hoon index 3db7edb631..3033087723 100644 --- a/pkg/arvo/sur/neo.hoon +++ b/pkg/arvo/sur/neo.hoon @@ -2026,6 +2026,11 @@ +$ dare ?(%y %z) +$ port (pair dare lads) +$ kids (unit port) ++$ tear + $% [%only wan=curb hav=stud] + [%not not=curb hav=stud] + == + :: $dude: virtual namespace binding :: +$ dude