Skip to content

16.4 Inputs

An input is typed: {name: {type: 'text' | '<SpineLabel>', value}} — an email or meeting notes as text, one entity of a spine ({type: 'CustomerAccount', value: 'acme.com'}) as an identity. Binding, against the chosen plan’s steps and the goal:

  • an input named after a parameter binds to it;
  • otherwise a text input binds to the one parameter the plan reads into ai.fromText, and an identity of L to the one parameter a step keys or canonicalizes on spine L;
  • two candidate parameters for one input is refused, naming both — and so are two inputs for one parameter, and a text or identity parameter no input binds. Name the input after the parameter to choose;
  • any other parameter takes its declared default.

The compiled plan is one statement, so $email read by two steps is one parameter: binding counts names.