monoloop-contracts 0.1.4

Shared identities, dialect descriptors, errors, and port contracts for Monoloop
Documentation

monoloop-contracts

Shared identities, ports, limits, errors, and canonical types for Monoloop.

Hosts and all three product components depend on this crate. It has no I/O and no Tokio runtime of its own.

License: AGPL-3.0-or-later. Commercial: https://frogfish.io

What this crate is / is not

Is Is not
Shared vocabulary (SessionKey, TransactionSubmitRequest, canonical units, …) The Monoloop product façade (use monoloop)
Push delivery ports (transaction_delivery, TransactionDelivery) Connector / Interpreter / Loop implementations
Host-side sink/callback adapters (TransactionEventSink, CompletionCallback) Persistence, UI, or tools

How an assembler uses it (Runtime v2)

This crate alone does not run a transaction. Prefer the façade:

  1. Depend on monoloop (or wire monoloop-loop + connector + interpreter).
  2. Build CanonicalInput (e.g. user_text_input("…")).
  3. let (delivery, receiver) = transaction_delivery(limits)?;
  4. StartedRuntime::start(RuntimeBootstrap { … }) — runtime owns its executor.
  5. handle.submit(TransactionSubmitRequest { …, delivery }).
  6. Drain receiver.events / await receiver.completion on the host side.
  7. Optional: adapt_event_sink / adapt_completion_callback (in monoloop-loop) to bridge push receivers into host sinks outside the runtime.
use monoloop_contracts::user_text_input;

let input = user_text_input("hello")?;

Full wiring: monoloop examples/fake_echo.rs.

Core submits use TransactionSubmitRequest + transaction_delivery only. The former sink-shaped TransactionRequest / TransactionRuntime trait were removed (DECISIONS D-060). Host traits TransactionEventSink / CompletionCallback remain for out-of-kernel adapters.

Key modules

Module area Examples
Identity ChannelId, SessionId, SessionKey, TransactionId, ExchangeId
Core submit (v2) TransactionSubmitRequest, transaction_delivery, TransactionDelivery
Host adapters (outside core) TransactionEventSink, CompletionCallback, FnEventSink, FnCompletionCallback
Canonical CanonicalUnitEvent, ToolRequestState, CanonicalInput
Config InvocationConfig, EffectiveConfig, OptionPolicy, ChannelCapabilities
Dialects DialectDescriptor, DialectFamily
Outcomes TransactionEvent, TransactionEventPayload, TransactionEndEvent, TransactionEndKind

Normative: doc/TRANSACTION_RUNTIME_V2_SPEC.md, doc/REQUIREMENTS.md.