Add reactive runtime demos + sx-web federation plan

7 interactive island demos for the reactive runtime layers:
- L0 Ref (timer + DOM handle), L1 Foreign (canvas via host-call),
  L2 Machine (traffic light), L3 Commands (undo/redo),
  L4 Loop (bouncing ball), L5 Keyed Lists, L6 App Shell

Fix OCaml build: add (wrapped false) to lib/dune, remove Sx. qualifiers.
Fix JS build: include dom-lib + browser-lib in adapter compilation.

New plan: sx-web federated component web — browser nodes via WebTransport,
server nodes via IPFS, in-browser authoring, AI composition layer.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 00:54:23 +00:00
parent 6f96452f70
commit fea44f9fcc
7 changed files with 723 additions and 13 deletions

View File

@@ -130,7 +130,7 @@ def compile_ref_to_js(
("render.sx", "render (core)"),
("web-forms.sx", "web-forms (defstyle, deftype, defeffect, defrelation)"),
]
for name in ("parser", "html", "sx", "dom", "engine", "orchestration", "boot"):
for name in ("parser", "html", "sx", "dom-lib", "browser-lib", "dom", "engine", "orchestration", "boot"):
if name in adapter_set:
sx_files.append(ADAPTER_FILES[name])
# Use explicit ordering for spec modules (respects dependencies)

View File

@@ -1,6 +1,6 @@
module T = Sx.Sx_types
module P = Sx.Sx_parser
module R = Sx.Sx_ref
module T = Sx_types
module P = Sx_parser
module R = Sx_ref
open T
let () =

View File

@@ -10,12 +10,7 @@
dune exec bin/run_tests.exe -- test-primitives # specific test
dune exec bin/run_tests.exe -- --foundation # foundation only *)
module Sx_types = Sx.Sx_types
module Sx_parser = Sx.Sx_parser
module Sx_primitives = Sx.Sx_primitives
module Sx_runtime = Sx.Sx_runtime
module Sx_ref = Sx.Sx_ref
module Sx_render = Sx.Sx_render
(* Modules accessed directly — library is unwrapped *)
open Sx_types
open Sx_parser
@@ -273,7 +268,7 @@ let make_test_env () =
| _ -> raise (Eval_error "append!: expected list and value"));
(* --- HTML Renderer (from sx_render.ml library module) --- *)
Sx.Sx_render.setup_render_env env;
Sx_render.setup_render_env env;
(* Stubs needed by adapter-html.sx when loaded at test time *)
bind "set-render-active!" (fun _args -> Nil);

View File

@@ -1,2 +1,3 @@
(library
(name sx))
(name sx)
(wrapped false))