Skip to content

Glossary ​

Use these terms consistently in code, docs, and UI copy. The last column lists aliases to avoid.

Engine modules and Orchestration modules map terms to code. The orchestration crate layout has the full module map.

Graph structure ​

TermDefinitionAliases to avoid
WorkflowDirected acyclic graph (DAG) of nodes and edges that defines an AI pipelineGraph, pipeline, flowchart
NodeVertex in the workflow graph that runs an AI agentStep, task, stage
EdgeDirected connection between two nodes that carries output as inputConnection, link, arrow
NodeIdUnique identifier for a node within a workflow
EdgeIdUnique identifier for an edge within a workflow
WorkflowIdUnique identifier for a workflow
WorkflowSettingsPortable per-workflow configuration: shared context, retry, schedule, provider override, and optional Plan → Execute gateWorkflow config
PlanModeOptional workflow gate that holds a run in Planning until its configured conversational review node freezes a change evidence packetPlan-only workflow
SharedContextText appended to every node's system prompt for the whole run (WorkflowSettings.shared_context)Shared node context
ExecutionCwdWorking directory for filesystem tools during a run; chosen at run time, not stored on the workflowWorking directory, run folder

Node lifecycle ​

TermDefinitionAliases to avoid
NodeKindNode variant (e.g. Agent) that determines runtime behaviorNode type, node variant
AgentNodeConfigAgent node configuration: model, prompts, handoff, tools, callable agents, and optional human questionsNode config, agent config
HandoffSpecPer-node result format: heading-based Markdown template or JSON output schemaOutput mode
HandoffArtifactImmutable run-scoped HANDOFF.md or HANDOFF.json reference with media type, size, and SHA-256 digestHandoff file
NodePositionCanvas coordinates for rendering a nodePosition, coordinates
RequestUserInputWhether a running node may call enabled human-input harnesses to pause; defaults to falseManual start
ConversationModeDirect-chat lifecycle: a plain assistant message ends one turn, live user messages may queue between model/tool calls, and submit stays terminalWorkflow completion
CallableAgentSaved agent definition a node may invoke as a subagent during a run (engine::CallableAgent)Saved subagent, AgentDefinition
CallableAgentSelectionAgent IDs on AgentNodeConfig.callable_agents; snapshotted at run startAllowed agents, callable agents
AllowAllCallableAgentsWhen true, every saved agent is snapshotted at run start instead of callable_agentsAllow all agents

Conversation ​

TermDefinitionAliases to avoid
ChatMessageOne message, with a role, in a node's conversationMessage, turn
ChatRoleMessage sender: System, Thinking, User, or AssistantSender, author
AgentTranscriptItemChronological transcript entry: assistant/user message, ToolCall, or ToolResultTranscript entry, log item

Tool configuration ​

TermDefinitionAliases to avoid
NodeToolConfigTool capabilities for a node or saved agent: approval mode plus separate free-text and structured human-input harness flagsTool settings, tool setup
ApprovalModeNode-level tool approval strategy: read_only (read-class tools only, auto-approved), write (all tools; read-class auto, write-class prompt - default), always_ask (prompt every call), yolo (never prompt)Approval policy
Tool capability classRead/write grouping for builtins; drives approval and read_only availability. Read: retrieval/search tools plus ls. Write: mutation, shell, and subagent tools. Plain ls and read-only find Bash calls use the read approval tier.Tool tier
ToolTierSerialized capability class on tool definitions: read or writeTool level, access tier
ToolAccessPolicyRun-phase capability rule. Planning permits read-tier tools and write-enabled docs/**/*.md mutations; only the selected evidence-source node gets write/edit access to run://PLAN.md plus the approval-gated plan sealer. Execution restores the node's normal catalog.Approval mode
ToolConcurrencyWhether tool calls share or exclude concurrent access: shared or exclusiveParallelism, execution mode
ToolCallStatusTool call lifecycle: proposed, awaiting_approval, running, completed, blocked, failed, abortedCall status
ToolTruncationLimits and strategy for truncating tool outputOutput limit, size cap
PendingToolApprovalTool call awaiting human approval before it runsPending tool, queued call

Template system ​

TermDefinitionAliases to avoid
TemplateReusable node definition with default AgentNodeConfig and locked fieldsNode preset, blueprint
LockedFieldField users cannot edit once a template is applied (e.g. output_schema)Protected field, frozen field

Execution model ​

TermDefinitionAliases to avoid
Execution layerTopologically sorted group of nodes at the same depth; nodes in a layer may run in parallelLayer, depth level, wave
RunTelemetryRich interactive run event stream (chat, tools, subagents, pauses); ExecutionEvent alias in orchestrationExecution event
RunReportAggregated result of a workflow run: per-node outputs plus read/token countersSummary, result, run summary
NodeRunOutputStructured output from one nodeNode output, step result
EntrypointTextInitial text for nodes with no upstream dependencies at run startSeed input, initial prompt
ProjectFolder-scoped workspace binding workflows to a repo pathWorkspace, repo binding
RetryPolicyWorkflow-level retry: max attempts and backoff (WorkflowSettings.retry_policy)Retry config
WorkflowScheduleOptional cron schedule on a workflowCron schedule
NodeInvocationShared assembly of upstream inputs and AgentRequest for InteractiveEngineRequest builder
Effective providerProvider selected for a node: node override → shared workflow provider → active settings providerRuntime provider
FrozenChangeEvidencePacketImmutable, hash-verified structured review output injected into later Plan Mode requests as input.change_evidence_packetPlan file, system prompt
Plan artifactRun-owned immutable Markdown evidence the selected evidence-source node builds at run://PLAN.md, sealed through explicit approval of openflow_write_plan_artifact and referenced as artifact:<uuid>Repository plan file
Node handoffCanonical run-owned node result under run://handoffs/{node_id}/; downstream input carries its manifest next to the compact upstream outputNode output file

AI boundary ​

TermDefinitionAliases to avoid
AiPortTrait between the workflow engine and an AI backendAI adapter, backend trait
AgentRequestPayload for one AI turn on one node, including its effective provider and modelAI request, turn request
AgentTurnOutcomeResult of one turn: Completed, ToolCalls, NeedsUserInput, or MessageTurn result, AI response
AgentTurnSuccessCompleted outcome: structured output, raw text, and typed reasoning blocksSuccess result
AgentToolCallBatchToolCalls outcome: batch of tool invocations from the modelTool call batch
ToolCallSingle tool invocation from the modelTool request, tool use
ToolResultResult returned after a tool runsTool response
ToolDefinitionSchema for a tool exposed to the modelTool schema, tool spec
AgentNeedUserInputSignal that the model needs human input to continueUser input requested
AgentErrorError from the AI backend for the current turnBackend error, AI failure
OutputRepairCandidateRedacted in-memory payload for a malformed openflow_submit_node_output call (raw args size-capped; omitted from Display/Debug)Repair payload, raw tool args
Overseer output repairOne bounded same-provider AI pass (RepairingAiPort) that may fix a repairable candidate before engine retriesRepair node, overseer agent, CallableAgent

Validation outcomes ​

TermDefinitionAliases to avoid
WorkflowValidationErrorWhy a workflow graph is invalidValidation error
EmptyWorkflowWorkflow with zero nodes
DuplicateNodeIdTwo or more nodes share an id
MissingEndpointEdge references a node that does not existDangling edge
SelfEdgeEdge from a node to itselfSelf-loop
CycleDirected cycle that makes topological order impossibleCircular dependency

Interactive execution ​

TermDefinitionAliases to avoid
InteractiveEngineSans-I/O state machine for desktop and headless runs; run() invokes AiPort/ToolPort until terminal or NeedsInteractionStep engine, interactive runner
EngineRunResultOutcome of one run() step: Completed(RunReport), Failed, Cancelled, or NeedsInteractionRun result, poll result
NeedsInteractionEngineRunResult variant batching paused nodes (EngineAwaitInput, EngineAwaitApproval, EngineRetryableNode)Pause batch
PauseSuspend execution awaiting human input, tool approval, or retryStep, break
ResumeContinue from a paused state via on_* handlers and another run()Continue, step forward

Tool approval ​

TermDefinitionAliases to avoid
ToolApprovalExplicit human consent before a tool call runsTool consent, tool permit
EngineAwaitApprovalPause payload when a node waits on tool approval before run() returnsWaiting for tool approval

Engine modules ​

Modules under crates/engine/src/ own these terms:

ModuleTerms
graph/Workflow, Node, Edge, ids, settings, CallableAgent, resolve_callable_agent_snapshots, validate_workflow, execution layers
template/Template, locked fields, builtin presets
execution/InteractiveEngine, RunReport, RunTelemetry, subagent_runtime, NodeInvocation
conversation/ChatMessage, ChatRole, AgentTranscriptItem
tools/NodeToolConfig, ApprovalMode, ToolCall, ToolResult, policy helpers
ports/AiPort, AgentRequest, AgentTurnOutcome, human/tool input ports

Persistence adapters outside engine:

LocationTerms
orchestration/adapters/storage/project_store.rsProject
orchestration/adapters/storage/project_workflow_store.rsProject workflow files (.flow/workflows/)
orchestration/adapters/storage/app_workflow_store.rsApp-level workflows (workflows.json)

Orchestration modules ​

The orchestration layout explains how these modules fit together.

ModuleTerms
orchestration/workflow/catalog.rsWorkflow merge/split, project assign
orchestration/agent.rsCallableAgent library CRUD (FileAgentStore adapter)
orchestration/lib.rsAgentDefinition type alias for persisted CallableAgent JSON
orchestration/run/coordinator/mod.rsRun session, Pause/Resume host path
orchestration/settings/facade.rsSettings, provider readiness
orchestration/settings/context_window.rsBundled model → context-window lookup (resources/context_window_sizes.json)

Relationships ​

  • A Workflow has Nodes and Edges.
  • An Edge passes a source Node's output and optional Node handoff manifest to a target Node.
  • Execution layers come from DAG topology; nodes in the same layer do not depend on each other.
  • An AgentNodeConfig belongs to one Node and may include NodeToolConfig.
  • A ChatMessage or AgentTranscriptItem belongs to one Node's transcript.
  • An AgentRequest goes to AiPort for one Node per turn.
  • Every AgentRequest advertises harness tools (openflow_submit_node_output, optional openflow_request_user_input, optional openflow_ask_user_question) alongside executable tools. A turn uses either exactly one harness tool alone or one or more executable tools, never both in the same batch.
  • AgentTurnOutcome selects completion, executable tool work, human input, or a plain message.
  • A Template instantiates a Node with default config and LockedField constraints.
  • InteractiveEngine::run returns EngineRunResult until Completed, Failed, Cancelled, or NeedsInteraction.
  • Headless acceptance runs use the same InteractiveEngine through run_workflow_headless in orchestration.

Examples ​

  • Layers: a node with two incoming edges sits one layer above the highest layer of its upstream nodes, following the graph's topological order.
  • Tool calls: when the model returns ToolCalls and policy requires a prompt, InteractiveEngine returns NeedsInteraction with EngineAwaitApproval. Auto-allowed calls run inside run. After execution, ToolResult feeds the same node's next turn.
  • Headless tests: orchestration's run_workflow_headless constructs InteractiveEngine with scripted inputs and approvals. The tests exercise the desktop app's state machine without a separate batch runner.

Terms with multiple meanings ​

  • Layer - in execution_layers, DAG depth grouping; in CSS/UI, z-index. Here it means execution layer only.
  • Event - RunTelemetry / ExecutionEvent (interactive UI stream) vs OS/Tauri IPC events. Lifecycle detail lives in telemetry, not RunReport.
  • Config - AgentNodeConfig (agent behavior) vs NodeToolConfig (tool environment). Distinct concepts.
  • Template - the canonical type in engine::template. Not the older NodeTemplate naming in historical docs.
  • Runner - prefer InteractiveEngine or run_workflow_headless. Do not use "runner" alone in docs or module names.

Released under the MIT License.