registry

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2026 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Overview

Package registry emits the generated application-level binding registry that composes every model package accessor in canonical import-path order.

Index

Constants

View Source
const Filename = "zz_golem_registry.gen.go"

Variables

This section is empty.

Functions

This section is empty.

Types

type File

type File struct {
	ImportPath, PackageName, Path string
	Source                        []byte
}

func Emit

func Emit(request Request) (File, error)

func EmitShell

func EmitShell(request ShellRequest) (File, error)

EmitShell produces the deterministic registry bootstrap used by compiler method interpretation and typed binding discovery. It carries the caller surface plus SystemEscape and the transactional system clients it returns, so a declaration body holding a caller transaction type-checks against the same ABI the final registry publishes. It is never a publishable artifact.

type ProviderInput

type ProviderInput struct {
	Schema            physical.PhysicalSchema
	Fingerprint       ir.Fingerprint
	SystemFingerprint ir.Fingerprint
	MigrationManifest []byte
}

type Request

type Request struct {
	AppPackage         modelcodegen.PackageSpec
	ModelPackages      []modelcodegen.PackageSpec
	Actor              ir.GoNamedTypeIR
	GolemImportPath    string
	RuntimeImportPath  string
	GenerationDigest   string
	GeneratorVersion   string
	TemplateABIVersion string
	Schema             SchemaInput
}

type SchemaInput

type SchemaInput struct {
	Model               ir.ModelIR
	Contract            ir.ContractIR
	ModelFingerprint    ir.Fingerprint
	ContractFingerprint ir.Fingerprint
	Providers           []ProviderInput
}

SchemaInput remains generator-internal. Generated application code receives only opaque canonical byte blobs and public fixed-width digest values.

type ShellRequest

type ShellRequest struct {
	AppPackage      modelcodegen.PackageSpec
	Actor           ir.GoNamedTypeIR
	Model           ir.ModelIR
	Contract        ir.ContractIR
	GolemImportPath string
	// DeclarationDiscovery selects the deliberately permissive mutation
	// signatures used by the first typed source pass. Optimistic-concurrency
	// ownership is itself discovered by that pass, so the pre-discovery ModelIR
	// cannot yet choose between the classic and versioned final ABIs. This shell
	// is never published; generation subsequently type-checks the exact final
	// registry in the prospective artifact graph.
	DeclarationDiscovery bool
}

ShellRequest describes the generated caller surface, and the system surface SystemEscape reaches from inside a caller transaction, needed while the source package is type-checked before its final registry exists. The shell is an in-memory overlay only: it contains exact public method signatures and no runtime, database, policy, or transaction behavior.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL