Connect with the MoonBit-based CLI
The MoonBit Morphir CLI
and the Rust finos/morphir CLI share the executable name morphir. This guide
describes the MoonBit source at bd3adc52e6b8f6368fdaee50f76535799732f8d6.
It does not claim that the Python Extism bundle runs through this version.
Current adapter limit
The Python bundle imports the Extism host ABI and speaks MEP 0.1. The MoonBit
portable core-wasm-process adapter expects a core-WASM guest using
morphir_bytes_v1 callbacks, a binary Ion manifest and MEP 0.2 draft. The
native-process adapter is another explicit binding. Neither is an Extism host.
Renaming the Python .wasm to model.wasm does not supply a compatible ABI.
The separate Extism proposal
is tracked by morphir-ukvn.5.98. It proposes a pinned shared Rust host adapter,
protocol negotiation and qualification with the real Python bundle. The proposal does not establish released support. Until it is independently qualified, use
the Rust-host recipe to invoke the Python extension or
use the Python API directly.
File interchange limits
The portable MoonBit extension path generates from a MorphirModel envelope,
model/model-envelope.json, with a validated payload. Its current tuple uses
envelope 0.1.0-draft.1, IR 4.0.0, and either morphir-model/ion-binary or
morphir-ir/morphir-json. Compilation can refuse JSON if it would lose source
and naming provenance. Python's versioned model.json is a plain IR document.
The documentation qualification probes a plain Python v3/v4 Library at the MoonBit portable generation boundary. The expected result is an explicit envelope refusal before guest execution, with exit status 2 in this pinned CLI. That is a checked incompatibility, not a recipe for a successful conversion. No ad hoc envelope, undocumented provenance drop, or automatic codec fallback is recommended.
To repeat a probe, use the pinned source's own CLI entry point and provide
the plain model.json from the quickstart as the generation
input. Supply a syntactically valid portable pin as required by that CLI so
the check reaches model validation. The qualification runner records the exact
command, input and diagnostic; the upstream
extension guide
defines the full pin schema and invocation contract.
Installation is not selection
The portable invocation requires an explicit extension pin. Local repository
commands and installed selection have separate constraints. Installed native
selection is tracked by morphir-ukvn.5.64.30. The site will add a working
Python connection only after the Extism adapter and the exact bundle/host pair
pass their own qualification.