Condukt.Workflows.Expr (Condukt v1.3.0)

Copy Markdown View Source

Expression sub-language for Condukt workflows.

Workflow document fields contain ${...} placeholders that reference inputs, prior step outputs, and as bindings introduced by map steps. Inside a placeholder, the language supports:

  • identifiers: inputs, steps, plus any binding in scope
  • member access: inputs.name, steps.fetch.body.title
  • indexing: xs[0], obj["key"]
  • comparison: ==, !=, <, <=, >, >=
  • boolean: &&, ||, !
  • literals: strings, integers, floats, booleans, null
  • formatters: ${var:json}, ${var:csv}

When a string field is exactly one ${expr} placeholder, the underlying value's type is preserved. Otherwise every placeholder is coerced to a string and concatenated with the surrounding text.

Summary

Functions

Evaluates an expression AST against ctx.

Interpolates a single string. See module docs for the type-preservation rule.

Recursively interpolates ${...} placeholders inside any JSON value: strings, lists, and maps. Non-string leaves are passed through unchanged.

Parses an expression string (the contents of a ${...} placeholder) into an AST.

Returns the sorted list of step ids referenced inside any ${...} placeholder anywhere in value. Used by the executor to infer implicit dependencies between steps.

Functions

eval(ast, ctx)

Evaluates an expression AST against ctx.

interpolate(string, ctx)

Interpolates a single string. See module docs for the type-preservation rule.

interpolate_value(value, ctx)

Recursively interpolates ${...} placeholders inside any JSON value: strings, lists, and maps. Non-string leaves are passed through unchanged.

parse(expression_text)

Parses an expression string (the contents of a ${...} placeholder) into an AST.

references(value)

Returns the sorted list of step ids referenced inside any ${...} placeholder anywhere in value. Used by the executor to infer implicit dependencies between steps.