host: the adapter seam for business-logic-as-composition (design-first)
lib/host/behavior.sx — the substrate-independent seam every runner/transport/registry/driver plugs into. An engine bundles four dict-of-functions adapters (trigger-registry, runner, transport, driver); behavior/process folds an ACTIVITY through the pipeline: emit → match triggers → run each behavior DAG → dispatch each effect-as-data → recurse on new activities (loop closure, depth-guarded at 8). Every stage injected, so the same DAG + engine run over the synchronous op-table runner / Erlang durable / celery-sx / fed-sx transport unchanged. Reference tests (mock adapters) prove the contract: publish→trigger→runner→effect flows; a non-matching activity fires nothing (log complete, execution precise); an effect that emits a new activity re-triggers (loop closes); an unbounded loop is depth-guarded (terminates). Wired into conformance.sh + serve.sh MODULES. behavior 4/4; full host conformance 575/575. Next: P0 supplies the REAL adapters (publish activity ← host/blog--publish-activity, local-SX trigger, sync op-table runner over a publish-DAG, host driver) — same engine. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -94,6 +94,7 @@ MODULES=(
|
||||
"lib/host/relations.sx"
|
||||
"lib/host/compose.sx"
|
||||
"lib/host/execute.sx"
|
||||
"lib/host/behavior.sx"
|
||||
"lib/host/htmlsx.sx"
|
||||
"lib/host/blog.sx"
|
||||
"lib/host/page.sx"
|
||||
@@ -112,6 +113,7 @@ SUITES=(
|
||||
"relations host-rl-tests-run! lib/host/tests/relations.sx"
|
||||
"blog host-bl-tests-run! lib/host/tests/blog.sx"
|
||||
"htmlsx host-ht-tests-run! lib/host/tests/htmlsx.sx"
|
||||
"behavior host-be-tests-run! lib/host/tests/behavior.sx"
|
||||
"compose host-cp-tests-run! lib/host/tests/compose.sx"
|
||||
"execute host-ex-tests-run! lib/host/tests/execute.sx"
|
||||
"session host-se-tests-run! lib/host/tests/session.sx"
|
||||
|
||||
Reference in New Issue
Block a user