Documentation
¶
Overview ¶
Package axiom is the public API for loading .axm modules, wiring Go activities, and running Axiom executions.
Quick Start ¶
// One-liner for simple cases:
engine, err := axiom.CompileAndNew(source, axiom.Act("SendEmail", sendEmail))
// From file with full control:
app, err := axiom.Load("module.axm")
engine := app.MustNew(
axiom.Act("SendEmail", sendEmail),
axiom.WithProductionMode(),
)
engine.Start(ctx, "exec-1", nil)
Stores ¶
Memory store is the default (no option needed). For durability use Pebble:
store, err := axiom.OpenPebble("data/axiom")
engine := app.MustNew(axiom.WithStore(store))
Activity Registration ¶
Use ActTyped for application code when inputs and outputs have stable Go shapes. Use Act/Acts for dynamic integration boundaries that naturally use map payloads. The engine validates that every .axm activity with effect!=none has a Go handler.
Index ¶
- Constants
- Variables
- func AddClaim[S any](flow *Flow[S], claim func(S) error)
- func EffectHandler[S, C any](flow *Flow[S], handler func(context.Context, C) error)
- func FlowEffectIDFromContext(ctx context.Context) (string, bool)
- func Handle[S, E any](flow *Flow[S], handler func(context.Context, S, E) (FlowResult[S], error))
- func RuntimeQueryProjectionNames() []string
- func ValidateRuntimeQueryProjections(module *Module) error
- type Activity
- type ActivityID
- type ActivityRegistry
- type ActivityTask
- type AnalysisLevel
- type App
- type AtomID
- type BundleDiff
- type Clock
- type CompileOption
- type Diagnostic
- type Diagnostics
- type DurabilityProvider
- type DurableFlowStore
- type Effect
- type Engine
- func CompileAndNew(source []byte, opts ...Option) (*Engine, error)
- func MustCompileAndNew(source []byte, opts ...Option) *Engine
- func MustNew(module *Module, opts ...Option) *Engine
- func New(module *Module, opts ...Option) (*Engine, error)
- func NewEngine(module *Module, store Store, activities ActivityRegistry) *Enginedeprecated
- func Open(source PlanSource, opts ...Option) (*Engine, error)
- type Error
- type Errors
- type EventNamer
- type Execution
- type ExecutionState
- type Explanation
- type FactValue
- type FieldID
- type Flow
- type FlowEffectAcknowledgeError
- type FlowEffectCompletion
- type FlowEffectDeliveryError
- type FlowEffectIntent
- type FlowEngine
- type FlowExecution
- type FlowHistoryEntry
- type FlowOption
- type FlowResult
- type FlowStore
- type HistoryEntry
- type ImpactReport
- type IncrementalFlowStore
- type Input
- type MemoryFlowStore
- func (*MemoryFlowStore) Durability() StoreDurability
- func (s *MemoryFlowStore) Load(ctx context.Context, flow, id string) ([]byte, []FlowHistoryEntry, bool, error)
- func (s *MemoryFlowStore) LoadHistory(ctx context.Context, flow, id string) ([]FlowHistoryEntry, error)
- func (s *MemoryFlowStore) LoadState(ctx context.Context, flow, id string) ([]byte, int, bool, error)
- func (s *MemoryFlowStore) Save(ctx context.Context, flow, id string, state []byte, history []FlowHistoryEntry) error
- func (s *MemoryFlowStore) SaveStateAndAppend(ctx context.Context, flow, id string, state []byte, entries []FlowHistoryEntry) error
- type Module
- type ModuleBundle
- type Option
- func Act(name string, fn Activity) Option
- func ActTyped[In any, Out any](name string, fn func(ctx context.Context, input In) (Out, error)) Option
- func Acts(registry ActivityRegistry) Option
- func Register(name string, fn Activity) Optiondeprecated
- func WithActivities(registry ActivityRegistry) Option
- func WithActivity(name string, fn Activity) Option
- func WithClock(clock Clock) Option
- func WithProductionMode() Option
- func WithStore(store Store) Option
- func WithStrictFastRuntime() Option
- func WithTraceLevel(level TraceLevel) Option
- type Output
- type Patch
- type PebbleFlowStore
- func (*PebbleFlowStore) AtomicFlowCommit()
- func (s *PebbleFlowStore) Close() error
- func (*PebbleFlowStore) Durability() StoreDurability
- func (s *PebbleFlowStore) Load(ctx context.Context, flow, id string) ([]byte, []FlowHistoryEntry, bool, error)
- func (s *PebbleFlowStore) LoadHistory(ctx context.Context, flow, id string) ([]FlowHistoryEntry, error)
- func (s *PebbleFlowStore) LoadState(ctx context.Context, flow, id string) ([]byte, int, bool, error)
- func (s *PebbleFlowStore) Save(ctx context.Context, flow, id string, state []byte, history []FlowHistoryEntry) error
- func (s *PebbleFlowStore) SaveStateAndAppend(ctx context.Context, flow, id string, state []byte, entries []FlowHistoryEntry) error
- type PebbleOption
- type PebbleStore
- type Plan
- type PlanSource
- type RetryScheduledError
- type RuleID
- type Run
- type SignalID
- type SourceMapEntry
- type Status
- type Store
- type StoreDurability
- type StoreTransaction
- type TRIZNormalization
- type TaskStatus
- type TraceLevel
- type TransactionalStore
- type Value
- type ValueKind
- type WorkerOptions
Constants ¶
const ( TraceAggregate TraceLevel = runtimepkg.TraceAggregate TraceFull TraceLevel = runtimepkg.TraceFull TraceMinimal TraceLevel = runtimepkg.TraceMinimal ValueInvalid ValueKind = runtimepkg.ValueInvalid ValueNull ValueKind = runtimepkg.ValueNull ValueBool ValueKind = runtimepkg.ValueBool ValueInt ValueKind = runtimepkg.ValueInt ValueFloat ValueKind = runtimepkg.ValueFloat ValueString ValueKind = runtimepkg.ValueString ValueAny ValueKind = runtimepkg.ValueAny )
const ( StatusStarted = runtimepkg.StatusStarted StatusRunning = runtimepkg.StatusRunning StatusWaiting = runtimepkg.StatusWaiting StatusCompleted = runtimepkg.StatusCompleted StatusFailed = runtimepkg.StatusFailed StatusCanceled = runtimepkg.StatusCanceled TaskPending = runtimepkg.TaskPending TaskRunning = runtimepkg.TaskRunning TaskCompleted = runtimepkg.TaskCompleted TaskFailed = runtimepkg.TaskFailed TaskSuperseded = runtimepkg.TaskSuperseded )
const DSLVersion = "axm/v1"
Variables ¶
var ErrRetryScheduled = runtimepkg.ErrRetryScheduled
ErrRetryScheduled can be matched with errors.Is when low-level callers need to distinguish deferred retry work from terminal activity failure.
var PebbleGobCodec = pebblestore.WithGobCodec
PebbleGobCodec uses Gob encoding (opt-in alternative codec).
var PebbleJSONCodec = pebblestore.WithJSONCodec
PebbleJSONCodec uses JSON for encoding records (default).
var PebbleNoSync = pebblestore.WithNoSync
PebbleNoSync disables WAL sync (fast, less durable).
var PebbleSyncEvery = pebblestore.WithSyncEvery
PebbleSyncEvery batches syncs at the given interval.
Functions ¶
func EffectHandler ¶
func FlowEffectIDFromContext ¶
FlowEffectIDFromContext returns the stable idempotency key of a durable Flow effect delivery. It is present while an EffectHandler is invoked by a Flow opened with WithDurableFlowEffects.
func RuntimeQueryProjectionNames ¶
func RuntimeQueryProjectionNames() []string
RuntimeQueryProjectionNames returns the stable runtime.* query namespace.
func ValidateRuntimeQueryProjections ¶
ValidateRuntimeQueryProjections rejects misspelled or unsupported runtime.* fields before a Plan is exposed to the runtime. The compiler already limits runtime.* references to query scope; this validation narrows that namespace to the stable execution metadata contract.
Types ¶
type Activity ¶
Activity is a Go function that implements a .axm activity block. ctx is canceled when the execution is canceled or times out.
type ActivityID ¶
type ActivityID = runtimepkg.ActivityID
type ActivityRegistry ¶
ActivityRegistry maps .axm activity names to their Go implementations.
type ActivityTask ¶
type ActivityTask = runtimepkg.ActivityTask
type AnalysisLevel ¶
type AnalysisLevel string
AnalysisLevel describes how much static analysis a Plan supports.
const ( AnalysisOpaque AnalysisLevel = "opaque" AnalysisStatic AnalysisLevel = "static" )
type App ¶
App holds a parsed and compiled .axm module, ready to create engines.
func Load ¶
Load reads a .axm file from disk, compiles it, and returns an App.
app, err := axiom.Load("module.axm")
engine := app.MustNew(axiom.Act("MyActivity", myFunc))
type AtomID ¶
type AtomID = runtimepkg.AtomID
type BundleDiff ¶
type Clock ¶
Clock is the minimal semantic time source required for deterministic testing and simulation.
type CompileOption ¶
type CompileOption func(*compileConfig)
CompileOption configures the compiler.
func WithSourceName ¶
func WithSourceName(name string) CompileOption
WithSourceName sets the filename used in error messages.
type Diagnostic ¶
type Diagnostic = compiler.Diagnostic
type Diagnostics ¶
type Diagnostics = compiler.Diagnostics
type DurabilityProvider ¶
type DurabilityProvider = runtimepkg.DurabilityProvider
DurabilityProvider is implemented by stores that declare their persistence semantics. Custom production stores should implement this in addition to TransactionalStore.
type DurableFlowStore ¶
type DurableFlowStore interface {
FlowStore
IncrementalFlowStore
DurabilityProvider
AtomicFlowCommit()
}
DurableFlowStore is the storage capability required by WithDurableFlowEffects. SaveStateAndAppend must atomically commit the state bytes and every supplied history entry as one durable unit.
type Effect ¶
type Effect struct{ Command any }
Effect is an opaque command emitted by a Go-first reducer.
type Engine ¶
type Engine = runtimepkg.Engine
func CompileAndNew ¶
CompileAndNew compiles source and builds an Engine in one call. Memory store is used by default. Use WithStore for Pebble.
engine, err := axiom.CompileAndNew(source, axiom.Act("MyActivity", myFunc))
func MustCompileAndNew ¶
MustCompileAndNew is like CompileAndNew but panics on error.
func New ¶
New builds an Engine from a compiled Module.
Memory store is used by default. Pass WithStore for Pebble durability. Every .axm activity with effect != "none" must have a Go handler registered via Act/Acts/WithActivity.
engine, err := axiom.New(module,
axiom.Act("SendEmail", sendEmail),
axiom.WithTraceLevel(axiom.TraceFull),
)
func NewEngine
deprecated
func NewEngine(module *Module, store Store, activities ActivityRegistry) *Engine
NewEngine is a compatibility wrapper. Use New with options.
Deprecated: Use New(module, WithStore(store), WithActivities(activities)).
type EventNamer ¶
type EventNamer = runtimepkg.EventNamer
type Execution ¶
type Execution = runtimepkg.Execution
func ReplayFromHistory ¶
func ReplayFromHistory(module *Module, history []HistoryEntry) (*Execution, error)
ReplayFromHistory reconstructs an Execution state from its history entries.
type ExecutionState ¶
type ExecutionState = runtimepkg.ExecutionState
type Explanation ¶
type Explanation = runtimepkg.Explanation
type FactValue ¶
type FactValue = runtimepkg.FactValue
type FieldID ¶
type FieldID = runtimepkg.FieldID
type Flow ¶
type Flow[S any] struct { // contains filtered or unexported fields }
Flow is the file-free typed reducer frontend. Its analysis level is opaque because arbitrary Go handlers cannot be statically inspected.
func (*Flow[S]) Analysis ¶
func (f *Flow[S]) Analysis() AnalysisLevel
type FlowEffectAcknowledgeError ¶
FlowEffectAcknowledgeError means the effect handler returned success but its durable completion marker could not be committed. The effect may be delivered again; handlers should deduplicate using FlowEffectIDFromContext.
func (*FlowEffectAcknowledgeError) Error ¶
func (e *FlowEffectAcknowledgeError) Error() string
func (*FlowEffectAcknowledgeError) StateCommitted ¶
func (e *FlowEffectAcknowledgeError) StateCommitted() bool
func (*FlowEffectAcknowledgeError) Unwrap ¶
func (e *FlowEffectAcknowledgeError) Unwrap() error
type FlowEffectCompletion ¶
type FlowEffectCompletion struct {
ID string `json:"id"`
}
FlowEffectCompletion records the durable acknowledgement for an outbox item.
type FlowEffectDeliveryError ¶
FlowEffectDeliveryError means reducer state and the effect intent are already committed, but the external handler failed. Retrying the business event would apply the reducer again; call DrainEffects to retry only the pending effect.
func (*FlowEffectDeliveryError) Error ¶
func (e *FlowEffectDeliveryError) Error() string
func (*FlowEffectDeliveryError) StateCommitted ¶
func (e *FlowEffectDeliveryError) StateCommitted() bool
func (*FlowEffectDeliveryError) Unwrap ¶
func (e *FlowEffectDeliveryError) Unwrap() error
type FlowEffectIntent ¶
type FlowEffectIntent struct {
ID string `json:"id"`
Name string `json:"name"`
Payload json.RawMessage `json:"payload"`
}
FlowEffectIntent is the durable outbox representation of an emitted effect. ID is deterministic for a flow execution, handled-event sequence, and effect position. Payload contains the canonical JSON command to deliver.
type FlowEngine ¶
type FlowEngine[S any] struct { // contains filtered or unexported fields }
func OpenFlow ¶
func OpenFlow[S any](flow *Flow[S], opts ...FlowOption) (*FlowEngine[S], error)
func (*FlowEngine[S]) Execution ¶
func (e *FlowEngine[S]) Execution(id string) *FlowExecution[S]
type FlowExecution ¶
type FlowExecution[S any] struct { // contains filtered or unexported fields }
func (*FlowExecution[S]) Dispatch ¶
func (e *FlowExecution[S]) Dispatch(ctx context.Context, event any) error
func (*FlowExecution[S]) DrainEffects ¶
func (e *FlowExecution[S]) DrainEffects(ctx context.Context) error
DrainEffects retries durable outbox items that have no EffectCompleted acknowledgement. Delivery is at-least-once; use FlowEffectIDFromContext as the downstream idempotency key when exactly-once business effects matter.
func (*FlowExecution[S]) History ¶
func (e *FlowExecution[S]) History(ctx context.Context) ([]FlowHistoryEntry, error)
type FlowHistoryEntry ¶
type FlowOption ¶
type FlowOption func(*flowConfig) error
func WithDurableFlowEffects ¶
func WithDurableFlowEffects() FlowOption
WithDurableFlowEffects enables a transactional outbox for reducer effects. The configured store must implement DurableFlowStore and report synchronous durability. External effect delivery then happens only after state and EffectPending intents are committed. Delivery is at-least-once; use FlowEffectIDFromContext for downstream deduplication.
func WithFlowStore ¶
func WithFlowStore(store FlowStore) FlowOption
type FlowResult ¶
func Next ¶
func Next[S any](state S, effects ...Effect) FlowResult[S]
type FlowStore ¶
type FlowStore interface {
Load(ctx context.Context, flow, id string) (state []byte, history []FlowHistoryEntry, found bool, err error)
Save(ctx context.Context, flow, id string, state []byte, history []FlowHistoryEntry) error
}
FlowStore is the compatibility storage contract for typed Go flows. Stores that also implement IncrementalFlowStore avoid loading and rewriting the complete history on every dispatch.
type HistoryEntry ¶
type HistoryEntry = runtimepkg.HistoryEntry
type ImpactReport ¶
type IncrementalFlowStore ¶
type IncrementalFlowStore interface {
LoadState(ctx context.Context, flow, id string) (state []byte, historyLength int, found bool, err error)
SaveStateAndAppend(ctx context.Context, flow, id string, state []byte, entries []FlowHistoryEntry) error
LoadHistory(ctx context.Context, flow, id string) ([]FlowHistoryEntry, error)
}
IncrementalFlowStore is an optional capability for append-only history. It preserves FlowStore compatibility while reducing a long-lived execution from quadratic history copying to constant work per newly appended entry.
type MemoryFlowStore ¶
type MemoryFlowStore struct {
// contains filtered or unexported fields
}
func NewMemoryFlowStore ¶
func NewMemoryFlowStore() *MemoryFlowStore
func (*MemoryFlowStore) Durability ¶
func (*MemoryFlowStore) Durability() StoreDurability
Durability reports that the built-in Flow store is process-local. It is intentionally not a DurableFlowStore because it cannot survive a crash.
func (*MemoryFlowStore) Load ¶
func (s *MemoryFlowStore) Load(ctx context.Context, flow, id string) ([]byte, []FlowHistoryEntry, bool, error)
func (*MemoryFlowStore) LoadHistory ¶
func (s *MemoryFlowStore) LoadHistory(ctx context.Context, flow, id string) ([]FlowHistoryEntry, error)
func (*MemoryFlowStore) Save ¶
func (s *MemoryFlowStore) Save(ctx context.Context, flow, id string, state []byte, history []FlowHistoryEntry) error
func (*MemoryFlowStore) SaveStateAndAppend ¶
func (s *MemoryFlowStore) SaveStateAndAppend(ctx context.Context, flow, id string, state []byte, entries []FlowHistoryEntry) error
type Module ¶
func Compile ¶
func Compile(source []byte, opts ...CompileOption) (*Module, error)
Compile parses and compiles raw .axm source into a compiled Module. Use WithSourceName to set the source name for error messages.
func CompileAny ¶
func CompileAny(source []byte, opts ...CompileOption) (*Module, error)
CompileAny compiles either the stable Axiom v0 syntax (`domain ...`) or the user-facing TRIZ syntax (`system ...`). Existing Compile remains v0-only for compatibility with older callers.
func LoadModule
deprecated
func MustCompile ¶
func MustCompile(source []byte, opts ...CompileOption) *Module
MustCompile is like Compile but panics on error.
type ModuleBundle ¶
type ModuleBundle struct {
Module *Module
SourceHash string
CompiledHash string
DSLVersion string
Activities []string
ContextFields []string
Rules []string
Claims []string
}
func CompileBundle ¶
func CompileBundle(source []byte, opts ...CompileOption) (*ModuleBundle, error)
func (*ModuleBundle) Diff ¶
func (b *ModuleBundle) Diff(other *ModuleBundle) BundleDiff
func (*ModuleBundle) Impact ¶
func (b *ModuleBundle) Impact(changeSet []string) ImpactReport
func (*ModuleBundle) ValidateCompatibility ¶
func (b *ModuleBundle) ValidateCompatibility(previous *ModuleBundle) error
type Option ¶
type Option func(*engineConfig) error
Option configures an Engine before it is built. Options are validated at Build/New time (fail-fast).
func Act ¶
Act registers a single activity. Shorthand for WithActivity.
axiom.Act("SendWelcomeEmail", func(ctx context.Context, in axiom.Input) (axiom.Output, error) {
return axiom.Output{"sent": true}, nil
})
func ActTyped ¶
func ActTyped[In any, Out any](name string, fn func(ctx context.Context, input In) (Out, error)) Option
ActTyped registers an activity with typed Go inputs and outputs. Input and output types must be structs (or pointers to structs) or maps with string keys. Unsupported shapes fail during Engine construction instead of producing a late decode error or a silently empty output.
axiom.ActTyped("SendWelcomeEmail", func(ctx context.Context, in WelcomeInput) (WelcomeOutput, error) {
return WelcomeOutput{Sent: true}, nil
})
func Acts ¶
func Acts(registry ActivityRegistry) Option
Acts registers multiple activities from a registry.
engine := app.MustNew(axiom.Acts(axiom.ActivityRegistry{
"CheckInventory": checkInventory,
"ChargeCard": chargeCard,
}))
func WithActivities ¶
func WithActivities(registry ActivityRegistry) Option
WithActivities registers multiple activities (alias for Acts).
func WithActivity ¶
WithActivity registers a single activity (alias for Act).
func WithProductionMode ¶
func WithProductionMode() Option
WithProductionMode enables production safeguards:
- Strict fast runtime (no slow-path fallback)
- Transactional store required for atomic checkpoints and task decisions
- Synchronous durability declaration required for acknowledged commits
- durable retry/backoff and per-attempt timeout
- concurrency: once is serialized per activity within an Engine
- concurrency: parallel remains unrestricted
- concurrency: first/latest use transactional pending-task supersession
func WithStore ¶
WithStore sets an explicit store. Use this when you need Pebble durability or a custom Store implementation. For simple cases the default memory store is used automatically.
func WithStrictFastRuntime ¶
func WithStrictFastRuntime() Option
WithStrictFastRuntime enables strict mode: refuses to fall back to the slow path. Use in tests to catch unsupported .axm patterns early.
func WithTraceLevel ¶
func WithTraceLevel(level TraceLevel) Option
WithTraceLevel controls how much execution detail is recorded in history.
- TraceMinimal: only errors and lifecycle events
- TraceAggregate: summary of rule evaluation per turn (default)
- TraceFull: every rule attempt, every activity scheduling
type PebbleFlowStore ¶
type PebbleFlowStore struct {
// contains filtered or unexported fields
}
PebbleFlowStore is the built-in crash-durable store for typed Flow state, append-only history, and durable effect outbox intents. Each SaveStateAndAppend call is committed as one synchronously flushed Pebble batch, satisfying DurableFlowStore.
func OpenPebbleFlowStore ¶
func OpenPebbleFlowStore(path string) (*PebbleFlowStore, error)
OpenPebbleFlowStore opens a dedicated Pebble database for typed Flow state. Do not open the same directory concurrently through another Pebble handle.
func (*PebbleFlowStore) AtomicFlowCommit ¶
func (*PebbleFlowStore) AtomicFlowCommit()
func (*PebbleFlowStore) Close ¶
func (s *PebbleFlowStore) Close() error
func (*PebbleFlowStore) Durability ¶
func (*PebbleFlowStore) Durability() StoreDurability
func (*PebbleFlowStore) Load ¶
func (s *PebbleFlowStore) Load(ctx context.Context, flow, id string) ([]byte, []FlowHistoryEntry, bool, error)
func (*PebbleFlowStore) LoadHistory ¶
func (s *PebbleFlowStore) LoadHistory(ctx context.Context, flow, id string) ([]FlowHistoryEntry, error)
func (*PebbleFlowStore) Save ¶
func (s *PebbleFlowStore) Save(ctx context.Context, flow, id string, state []byte, history []FlowHistoryEntry) error
func (*PebbleFlowStore) SaveStateAndAppend ¶
func (s *PebbleFlowStore) SaveStateAndAppend(ctx context.Context, flow, id string, state []byte, entries []FlowHistoryEntry) error
type PebbleStore ¶
type PebbleStore = pebblestore.Store
PebbleStore is a durable on-disk Store backed by CockroachDB Pebble.
func OpenPebble ¶
func OpenPebble(path string, opts ...PebbleOption) (*PebbleStore, error)
OpenPebble opens a Pebble-backed durable store using JSON encoding by default. The store's schema version and selected codec are persisted in metadata. Reopening an existing store with a conflicting codec or an unsupported schema version fails fast with an error. Legacy unmarked stores are automatically detected and adopted on open. See docs/runtime-semantics.md for full details.
store, err := axiom.OpenPebble("data/axiom", axiom.PebbleNoSync())
engine := app.MustNew(axiom.WithStore(store))
type Plan ¶
type Plan struct {
Name string
Version string
Digest string
Format string
Analysis AnalysisLevel
// contains filtered or unexported fields
}
Plan is the canonical executable representation consumed by Axiom. Frontends such as Go builders, AXM and TOML all compile into this type.
func CompilePlan ¶
func CompilePlan(source []byte, opts ...CompileOption) (*Plan, error)
CompilePlan compiles AXM or TRIZ source into a canonical Plan.
func NewPlan ¶
func NewPlan(module *Module, format, version string, analysis AnalysisLevel) (*Plan, error)
NewPlan wraps a validated compiled module as a canonical Plan.
func (*Plan) CompilePlan ¶
CompilePlan lets a Plan satisfy PlanSource.
type PlanSource ¶
PlanSource is implemented by AXM, TOML and Go model frontends.
type RetryScheduledError ¶
type RetryScheduledError = runtimepkg.RetryScheduledError
RetryScheduledError describes a durable activity retry checkpoint returned by the low-level Engine.RunUntilIdle API. The higher-level Run API handles this condition automatically.
type RuleID ¶
type RuleID = runtimepkg.RuleID
type Run ¶
type Run = runtimepkg.Run
type SignalID ¶
type SignalID = runtimepkg.SignalID
type SourceMapEntry ¶
type Status ¶
type Status = runtimepkg.Status
type Store ¶
type Store = runtimepkg.Store
func NewMemoryStore ¶
func NewMemoryStore() Store
NewMemoryStore creates an in-memory store. Use when you need explicit store ownership (e.g. passing the same store to multiple engines).
type StoreDurability ¶
type StoreDurability = runtimepkg.StoreDurability
StoreDurability describes how strongly a Store persists committed writes.
const ( StoreDurabilityEphemeral StoreDurability = runtimepkg.StoreDurabilityEphemeral StoreDurabilityBestEffort StoreDurability = runtimepkg.StoreDurabilityBestEffort StoreDurabilityBuffered StoreDurability = runtimepkg.StoreDurabilityBuffered StoreDurabilitySynchronous StoreDurability = runtimepkg.StoreDurabilitySynchronous )
type StoreTransaction ¶
type StoreTransaction = runtimepkg.StoreTransaction
StoreTransaction is the transaction surface used by TransactionalStore.
type TRIZNormalization ¶
type TRIZNormalization struct {
Source []byte
NormalizedSource []byte
Module *Module
Diagnostics Diagnostics
SourceMap []SourceMapEntry
}
func NormalizeTRIZ ¶
func NormalizeTRIZ(source []byte, opts ...CompileOption) (*TRIZNormalization, error)
NormalizeTRIZ parses TRIZ DSL, emits equivalent Axiom v0 source, compiles it, and returns source-map and diagnostic data for tools such as Axiom Studio.
type TaskStatus ¶
type TaskStatus = runtimepkg.TaskStatus
type TraceLevel ¶
type TraceLevel = runtimepkg.TraceLevel
type TransactionalStore ¶
type TransactionalStore = runtimepkg.TransactionalStore
TransactionalStore exposes atomic store transactions.
type Value ¶
type Value = runtimepkg.Value
type ValueKind ¶
type ValueKind = runtimepkg.ValueKind
type WorkerOptions ¶
type WorkerOptions = runtimepkg.WorkerOptions
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package adgo implements Axiom Adaptive Durable Graph Orchestration: a production durable execution engine for long-running graphs, agents, LLM/tool workflows and human-in-the-loop processes.
|
Package adgo implements Axiom Adaptive Durable Graph Orchestration: a production durable execution engine for long-running graphs, agents, LLM/tool workflows and human-in-the-loop processes. |
|
examples/iris
command
|
|
|
examples/production
command
|
|
|
Package axm implements the optional AXM frontend.
|
Package axm implements the optional AXM frontend. |
|
cmd
|
|
|
axiombench
command
|
|
|
axiomgen
command
|
|
|
examples
|
|
|
axiom-files
command
|
|
|
coffee-machine
command
|
|
|
go-first
command
|
|
|
model
command
|
|
|
order
command
|
|
|
table
command
|
|
|
triz
command
|
|
|
internal
|
|
|
jsonx
Package jsonx contains JSON boundary helpers used by runtime and stores.
|
Package jsonx contains JSON boundary helpers used by runtime and stores. |
|
syncx
Package syncx contains small synchronization primitives shared by Axiom frontends.
|
Package syncx contains small synchronization primitives shared by Axiom frontends. |
|
testutil
Package testutil provides shared helpers for Axiom's test and benchmark infrastructure.
|
Package testutil provides shared helpers for Axiom's test and benchmark infrastructure. |
|
Package model provides a file-free declarative Go builder that compiles into the same canonical Plan as AXM and TOML.
|
Package model provides a file-free declarative Go builder that compiles into the same canonical Plan as AXM and TOML. |
|
store
|
|
|
pebble
Package pebble exposes the durable Pebble-backed Axiom store.
|
Package pebble exposes the durable Pebble-backed Axiom store. |
|
Package table implements a TOML decision-table frontend.
|
Package table implements a TOML decision-table frontend. |