Workflow
A Loom-side definition of a workflow over one protocol: an ordered list of steps, each either deterministic (one action with literal arguments, proposed without a model) or a judgement (the actions a model may choose among, with instructions). A step may be conditional on a frontier claim, never on a model. A run's progress over a definition may be kept as a record a store writes after every performed step and a later process resumes from.
loom.workflow is one of loom's bounded contexts. All domains.
Types
DeterministicStep
loom.workflow.DeterministicStep is a record of two fields:
- action —
String arguments—Json
JudgementStep
loom.workflow.JudgementStep is a record of three fields:
actions—List<String>instructions—Stringinputs—List<loom.workflow.OutputReference>
OutputReference
loom.workflow.OutputReference is a record of two fields:
step—Stringoutput—String
OutputType
loom.workflow.OutputType is one of String, Integer, Boolean, Json, StringList, IntegerList, BooleanList and JsonList.
RecordedOutput
loom.workflow.RecordedOutput is a record of three fields:
step—Stringoutput—Stringvalue—Json
StepCondition
loom.workflow.StepCondition is a record of two fields:
- claim —
String value—loom.workflow.Truth
StepKind
loom.workflow.StepKind is one of two shapes, told apart by a kind field — tagged, so a decoder never has to guess which branch it is reading:
Deterministic—loom.workflow.DeterministicStepJudgement—loom.workflow.JudgementStep
StepOutput
loom.workflow.StepOutput is a record of three fields:
name—Stringpointer—Stringtype—loom.workflow.OutputType
StepRequest
loom.workflow.StepRequest is a record of three fields:
step—String- action —
String arguments—Json
Truth
loom.workflow.Truth is one of True, False and Unknown.
UnproducedOutput
loom.workflow.UnproducedOutput is a record of three fields:
step—Stringoutput—Stringwhy—String
WorkflowDefinition
loom.workflow.WorkflowDefinition is a record of three fields:
name—Stringprotocol—Stringsteps—List<loom.workflow.WorkflowStep>
WorkflowRunRecord
loom.workflow.WorkflowRunRecord is a record of nine fields:
run—loom.run.CommissionRunIdworkflow—Stringdefinition_digest—Stringperformed—List<loom.workflow.StepRequest>proposed—Optional<loom.workflow.StepRequest>, which may be absentoutputs—List<loom.workflow.RecordedOutput>unproduced—Optional<loom.workflow.UnproducedOutput>, which may be absentattempted—List<String>usage—loom.metering.CarriedUsage
WorkflowStep
loom.workflow.WorkflowStep is a record of four fields:
name—Stringwhen—Optional<loom.workflow.StepCondition>, which may be absentkind—loom.workflow.StepKindoutputs—List<loom.workflow.StepOutput>
Two of the types above are reached by nothing else in this system: loom.workflow.WorkflowDefinition and loom.workflow.WorkflowRunRecord. No entity, view, command, event, error or crossing names them, so it is either vocabulary something outside this specification uses or a leftover — and only a person can tell which.
Generated from loom v1 · model digest 687ce3d39bdb34d56d1fe0c221f558534fa9c3e8eda9e34862b5b742d61331e9 · contract digest slice-sha256/2:120c98f3e776a8a2ca06cc58ec971e5d0fa401b6ad79cf8a374a50d4bd770d64. Do not edit this file; change the specification and regenerate it with task docs-generate.