Identity-bound causal command substrate from sealed caps.
Implements lane_collision_policy and coffee_lane_policy
(frozen-continuity vs fork-on-hop-off resume semantics) for
AI continuity governance.
lane_collision_policydecides what happens when actors meet.coffee_lane_policydecides what happens when they should not.
sender
-> causal-time (place: assign causal rank)
-> mux (distribute: lane + policy)
-> spaceshuttle (inject: executor-bound memory slot)
-> tibet-dgx (align: cluster alignment)
-> executor (execute)
-> receipt cap (sealed audit record)
- Clean data model —
Cap,LanePolicy,PhaseEvidence,UsageEvent,CapReceipt - Protocol adapters (
adapters.py) — drop-in interface fortibet-mux,tibet-causal-time,tibet-store-mmu,tibet-dgx,tibet-phantom - In-memory default implementations — runnable out-of-the-box for local development
- Branching continuations —
receipt/continue/fork(alpha/beta) /resync-needed/reject - Lane policies —
lane_collision_policy(5 values) +coffee_lane_policy(7 values) - Resume semantics —
freeze_resumeandfork_on_hop_offas first-class runtime modes - Gateway-compatible event export —
tibet-cap-bus.gateway-event.v1contract - Validator + fixture —
validate-gateway-eventCLI + reference JSON fixture - First-class
.aintactor binding + JIS attestation fields airlock_runtime_verdict.v1contract (0.1.3) — runtime-posture signal layer for the immune-switch pipeline (see below)verdict_transitions(0.1.3) — posture-transition builder that emitsgateway-event.v1records
In-memory adapters are placeholders. Real implementations land via Protocol replacement
(see ROADMAP.md for the 0.2.x release line).
The signal layer for the tibet-pol → snaft → cap-bus → tibet-airlock immune-switch
pipeline. tibet-cap-bus owns the wire-format; the producers and consumers live in
their own packages and do not depend on each other.
from tibet_cap_bus import (
VERDICT_KIND, # "airlock_runtime_verdict.v1"
validate_verdict_record, # contract validation
check_mode_coherence, # soft warn on misconfigured emitters
make_posture_transition_event, # gateway-event.v1 builder for transitions
POSTURE_TRANSITION_INTENT, # "posture.transition.v1"
)
verdict = {
"kind": VERDICT_KIND,
"verdict_id": "verdict_demo_001",
"timestamp": "2026-05-29T14:00:00+00:00",
"emitter": "jis:humotica:tibet-pol",
"runtime_mode": "python_fallback",
"rust_airlock": "offline",
"trust_kernel": "online_without_airlock",
"python_fallback": "enabled",
"external_ai_inbound": "deny", # the invariant kicks in
"execution_policy": "local_or_operator_approved_only",
"snaft_posture": "quarantine_external_ai",
"reason": "Bolle airlock runtime unavailable; Python fallback is not a production isolation boundary.",
}
assert validate_verdict_record(verdict) == []
assert check_mode_coherence(verdict) == []The 4 runtime-modes — embedded_online / kernel_online / python_fallback / offline —
map deterministically to 3 snaft postures: normal_zero_trust / quarantine_external_ai /
hard_quarantine. Snaft consumers (see snaft.posture.consume_verdict) call
make_posture_transition_event(...) from this package to log transitions as
gateway-event.v1 records. Reference: Codex policy 2026-05-29 §"Runtime Modes".
The concept is bigger than messaging:
cmailmoves continuitycapcarries a sealed instruction unitcap-streammoves causally ordered actionmuxdistributes those actions across isolated lanes
This package is the first code sketch of that execution-oriented substrate.
tibet-cap-bus demoRuns a small cap flow with:
- one sender
- lamport-style causal placement
- mux-style lane distribution
- executor-bound memory slot injection
- optional cluster alignment marker
- receipt cap emission
tibet-cap-bus emit \
--actor codex.aint \
--intent agent.tool.high \
--authority sam:tool \
--payload '{\"tool\": \"search\", \"query\": \"cap-stream\"}' \
--continuation-mode forktibet-cap-bus tracetibet-cap-bus chain
tibet-cap-bus chain --hops 4tibet-cap-bus triagetibet-cap-bus governance-export
tibet-cap-bus governance-export --source chain
tibet-cap-bus governance-export --source triagetibet-cap-bus cbom-export
tibet-cap-bus cbom-export --source chain
tibet-cap-bus cbom-export --source triagetibet-cap-bus export-all
tibet-cap-bus export-all --source chain
tibet-cap-bus export-all --source triagetibet-cap-bus gateway-export
tibet-cap-bus gateway-export --source chain
tibet-cap-bus gateway-export --jsontibet-cap-bus validate-gateway-event
tibet-cap-bus validate-gateway-event --source chain
tibet-cap-bus validate-gateway-event --input fixtures/gateway-event.resume.example.jsonThis validates the shared event lane used by:
tibet-cap-bustibet-gatewaytibet-ai-sbom- future live emitters such as
brain_api,service_api, ortelecom_api
The current contract is tibet-cap-bus.gateway-event.v1.
models.py- canonical records
adapters.py- phase protocols
runtime.py- in-memory default implementation
cli.py- operator surface
- emit
- place
- distribute
- inject
- align
- execute
Each phase returns explicit evidence so a future CBOM / audit / usage-event layer can attach cleanly.
The current runtime also projects:
cap-dispatchedcap-executed
events as a first bridge toward:
- AI-SBOM usage events
- CBOM / continuity walkability
- governance/audit conclusions
It can now also translate receipts back into follow-up caps for bounded chain execution, so the sketch behaves more like a real continuity substrate instead of a single-hop runner.
Fork mode now spawns multiple follow-up caps from one parent, making the chain runner branch rather than only continue linearly.
Each distributed cap now also carries a lane policy so branch children can
be treated differently by a future real tibet-mux integration.
Lane policy also now carries an explicit lane_collision_policy:
graceful_yieldassert_rootoverride_allqueuereject
Naast conflict-policy heeft de sketch nu ook een tweede primitive:
coffee_lane_policy, voor avoidance en graceful degradation.
Waarden die nu in de sandbox voorkomen:
sip_anywaypolite_avoidhard_avoidrebuildoffline_fallbackfreeze_resumefork_on_hop_off
Daarmee kunnen trust-, outage- en time-diff signalen per event zichtbaar worden zonder meteen hard in runtimegedrag vast te lopen.
De sandbox vertaalt resume nu ook echt naar verschillend vervolggedrag:
freeze_resume-> één.resume.frozenfollow-upfork_on_hop_off->.resume.catchup+.resume.liverebuild->.resume.rebuildoffline_fallback->.resume.offline
resync-needed and reject now route into explicit triage lanes, so
failure and recovery paths are modeled as first-class continuation flows
instead of dead ends.
The sketch can now also export a governance-shaped document that mirrors
the structure used by tibet-ai-sbom:
governance.questionsgovernance.trust_foundationgovernance.actor_model_provider_linksgovernance.continuation_graphgovernance.usage_events
And a small CBOM/SoM-shaped document with:
cbom.documentscanonical_surfacesurface_statusauthoritymaterial_factscontinuitysom_events
export-all combines both dialects from the same run so governance and
continuity/object views stay aligned.
The sketch can also emit a tibet-gateway-compatible JSONL shape so the
sandbox can act as a direct fixture/data generator for tibet-ai-sbom
ingest without adapter glue.
That same lane can now also be validated directly, so future emitters can
test their records before wiring them into tibet-ai-sbom or tibet-audit.
That event shape now also carries lane-level operational semantics per record, including:
lane_classlane_collision_policypreemptiblelane_priority_emitter
And the sandbox now ships a first fixture file:
fixtures/gateway-event.resume.example.json
The cap and usage-event models now carry:
actor_aintactor_jis_pubkeyattestation_layerattestation_ref
So the runtime can express not only execution and continuation, but also:
- who the actor is in
.aintterms - what trust lane the event claims
- where later real JIS attestations can attach
Replace LamportCausalPlacer with real tibet-causal-time.
Replace IntentMuxDistributor with real tibet-mux.
Replace MemorySlotInjector with real tibet-store-mmu / spaceshuttle hooks.
Replace NoopAligner with real tibet-dgx.
Replace EchoExecutor with:
- agent tools
- service calls
- model invocation
- industrial control adapters
This sketch is not the product. It is the attachment point for the product.
For private hub hosting, SLA support, custom integrations, or compliance guidance:
| Enterprise | enterprise@humotica.com |
| Support | support@humotica.com |
| Security | security@humotica.com |
MIT
Designed by Jasper van de Meent. Built by Jasper and Root AI as part of HumoticaOS.
Stack-positie: Groep agentic · Bootstrap = OSAPI-handshake naar tibet + jis (fail → snaft-rule + tibet-pol-rapport) · ← ainternet · tibet-triage → · See STACK.md · See demo/golden-path/ for the spine end-to-end.