runner

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Plik: flow/runner/config.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FormatDuration added in v0.10.0

func FormatDuration(d time.Duration) string

FormatDuration handles Windows clock resolution limits cleanly without misleading '0ns' outputs.

func JSONMapView added in v0.10.0

func JSONMapView(value any) any

JSONMapView applies JSON tags to struct outputs before expr evaluation.

func PrintInfo added in v0.10.0

func PrintInfo(w io.Writer, path, _ string, meta map[string]any, ast core.Expr) int

PrintInfo describes a .nflow file without executing it. It shows directives from meta, the sequence of atoms from the AST, and expected input.

func Run added in v0.10.0

func Run(ctx context.Context, cfg Config, path string, payload map[string]any, opts Opts) int

Run executes a .nflow file from disk.

func RunAssertions

func RunAssertions(w io.Writer, result any, durationMS int64, actions, asserts []string, verbosity int) int

RunAssertions ewaluuje @assert: z meta plus CLI --assert.

Env dostępny dla asercji:

result       — output ostatniej akcji w pipeline
duration_ms  — całkowity czas wykonania
actions      — lista nazw wykonanych akcji

Verbosity < 1 → cisza przy sukcesie.

func RunSource added in v0.10.0

func RunSource(ctx context.Context, cfg Config, src, name string, payload map[string]any, opts Opts) int

RunSource executes workflow DSL directly from in-memory text.

It is a thin wrapper over Execute: it handles --info, installs the observer, prints the result, and evaluates @assert: directives. Every other piece of orchestration lives in Execute so the same pipeline runs across cli, selftest, and embedded binaries.

Types

type Config added in v0.10.0

type Config struct {
	Resolver      core.CapabilityResolver
	Directives    *core.DirectiveTable
	Modifiers     *core.ModifierTable
	Operators     *core.OperatorTable
	Primaries     *core.PrimaryExtensionTable
	Materializers []core.Materializer
	CompileOpts   []core.CompileOption

	// Hooks are applied to every resolver action and to the top-level
	// program before execution. Callers that only want to see the
	// result set this to nil.
	Hooks []action.AnyHook

	// EventSink, when non-nil, is wrapped by observe.Hook and appended
	// to Hooks. Both paths end up on the execution-local resolver's
	// actions; use either, or both.
	EventSink observe.Sink

	// MeasureAllocs wraps the compile and run phases of Execute with
	// MemStats deltas so callers can attribute allocations to the
	// compiler versus the runtime. ReadMemStats triggers a brief
	// stop-the-world pause; leave false on production hot paths. This
	// mirrors the same precedent as CompileDuration and RunDuration:
	// Execute already reports per-phase diagnostics, and this is the
	// allocation counterpart.
	MeasureAllocs bool
}

Config bundles all compiler tables, capability resolvers, and materializers for a run. It is passed explicitly to prevent mutable package-level state.

func BuildConfig added in v0.10.0

func BuildConfig(bundles []core.Bundle) (Config, error)

BuildConfig compiles bundles into execution configuration. It has ZERO knowledge of @require, URLs or module paths.

type Execution added in v0.10.0

type Execution struct {
	Output          any
	Meta            map[string]any
	CompileDuration time.Duration
	RunDuration     time.Duration

	CompileAllocs     uint64
	CompileAllocBytes uint64
	RunAllocs         uint64
	RunAllocBytes     uint64
}

Execution is the outcome of one Execute call.

func Execute added in v0.10.0

func Execute(ctx context.Context, cfg Config, src, name string, payload map[string]any) (Execution, error)

Execute compiles and runs a .nflow source under the given configuration.

type Observer added in v0.10.0

type Observer struct {
	// contains filtered or unexported fields
}

Observer tracks every action that passes through the runtime.

func NewObserver added in v0.10.0

func NewObserver(out io.Writer, verbosity int) *Observer

func (*Observer) ActionNames added in v0.10.0

func (o *Observer) ActionNames() []string

func (*Observer) Hook added in v0.10.0

func (o *Observer) Hook() action.AnyHook

func (*Observer) PrintSummary added in v0.10.0

func (o *Observer) PrintSummary(w io.Writer)

func (*Observer) Records added in v0.10.0

func (o *Observer) Records() []Record

type Opts added in v0.10.0

type Opts struct {
	Verbosity int
	Info      bool
	Asserts   []string
	Stdout    io.Writer
	Stderr    io.Writer
}

Opts controls execution options for a single runner invocation.

type Record added in v0.10.0

type Record struct {
	Action   string
	Duration time.Duration
	Err      error
	Start    time.Time
}

Jump to

Keyboard shortcuts

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