PreparedModel

One model-static prepared owner domain. It contains no request document, clock, callback, registry, provider, filesystem handle, or request-scoped state.

It does hold model-static preparation, memoized lazily and thread-safely: condition and operation ASTs, iteration scopes, RepetitionNotUnique plans, the model path index, and the computation dependency order. That state is derived from the model alone and never from an Interpreter's configuration, so every interpreter created here shares one build of it — which is what lets a service cache one entry per model instead of one per (model × configuration). See the P-SERVICE profile in docs/INTERPRETER-SPEC.md ("The two consumer profiles"). Configuration-dependent work — the support-audit verdict, predefined-type pattern compilation, the clock — stays on each interpreter.

Concurrency: the memos are SYNCHRONIZED lazy, so concurrent JVM request threads sharing one instance each observe a single build. Node reaches this one isolate at a time; a multi-isolate JS host duplicates the instance per isolate rather than sharing it.

(Corrected 2026-08-07: this note previously claimed "no mutable resolver state", which the shared preparation memo makes false as written. The guarantee that matters — nothing request-scoped is retained — is unchanged.)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
Link copied to clipboard

The placement-transport verbs bound to this prepared owner domain.

Link copied to clipboard
val entryModelId: String
Link copied to clipboard
val fingerprint: String
Link copied to clipboard

Minimal owner-bound model lookup and pointer factory.

Link copied to clipboard
Link copied to clipboard
open override val owner: ModelOwnerIdentity

Functions

Link copied to clipboard
@JvmOverloads
fun createInterpreter(configuration: InterpreterConfiguration = InterpreterConfiguration.defaults()): Interpreter

Create a reusable active evaluator bound to this prepared model and customization configuration.