All Classes and Interfaces

Class
Description
Action types recorded in HistoryRecord.
Add-sign action — appends additional approvers to the current step (v4 §8.5).
Approve action — marks the caller's task DONE+APPROVED, evaluates the step and either advances the instance (next step / END) or stays put for further approvals (v4 §8.2 / §8.3).
Participant descriptor on a step.
Resolves an assignee declaration into a concrete list of user IDs.
Type discriminator of an Assignee.
FlowMetrics adapter that forwards every event into a MetricRegistry from opencode-base-observability.
Circulate (read-only notification) action — appends a history row and publishes a TaskCirculatedEvent; does not affect the workflow state (v4 §8.8).
Immutable comment attached to a task action.
Thrown on optimistic-lock version conflict during a concurrent update.
Supplies the current request's acting user id.
Default FlowDefinitionService backed by the supplied FlowRepository, DslParser, and DslValidator.
Default FlowInstanceService implementation.
Default HistoryService implementation — delegates to the repository with an optional engine-side authorisation check.
Default TaskService implementation.
Thrown when the JSON DSL fails structural or semantic validation.
JSON DSL → FlowDefinition parser (v4 §4, §11).
Semantic / quota validator for parsed FlowDsl documents.
Expression-evaluation SPI (optional).
Domain event raised when a FlowInstance reaches a terminal status (InstanceStatus.COMPLETED / InstanceStatus.TERMINATED / InstanceStatus.WITHDRAWN).
Read-only context passed to every SPI implementation (AssigneeResolver, ExpressionEvaluator).
Deployed flow definition (immutable view of flow_definition row + parsed DSL).
Thrown when flow definition deployment or version management fails.
Flow-definition facade: deploy, list, deprecate.
Raw JSON DSL top-level structure (v4 §4.1).
Single DSL assignee record.
Single DSL step record (mirrors JSON object literally).
Single DSL transition record.
Catalogue of stable error codes for the opencode-base-flow module. opencode-base-flow 模块的稳定错误码目录。
Cross-package bridge into the package-private FlowEventBus so the operation/ package can publish domain events without exposing the underlying bus type.
Base exception for the opencode-base-flow module. opencode-base-flow 模块的异常基类。
Running flow instance (mirrors flow_instance row).
Thrown when a flow instance lookup by id returns no row.
Flow-instance facade: start, get, list, terminate.
Engine-facing metrics façade — v4 §9.1.
Factory for FlowMetrics that auto-detects whether the optional opencode-base-observability module is available on the runtime classpath.
Unified persistence contract for the flow engine; backed by either InMemoryFlowRepository (tests / demos) or JdbcFlowRepository (production, S4).
Domain event raised when a FlowInstance is started.
Lifecycle status of a FlowDefinition.
H2 database dialect (primary CI / contract-test backend).
Single immutable history entry (mirrors flow_history row).
History-timeline facade.
Internal append-only writer for HistoryRecords.
Thrown when an action is rejected by the engine's state machine.
Thread-safe, in-memory FlowRepository for unit tests, integration tests, and short-lived demos.
Package-private utility that sanitises and validates user-supplied text fields (comment / reason / userId) before the engine persists them, per design v4 §7.3.
Lifecycle status of a FlowInstance.
Vendor abstraction over the small set of column-type / SQL fragments that differ between MySQL, PostgreSQL and H2.
JDBC-backed FlowRepository for MySQL, PostgreSQL and H2.
Cross-package bridge into the package-private JsonExtras helper, so the operation/ package can serialise extra_json payloads without exposing the underlying helper type.
MySQL / MariaDB dialect.
Zero-cost default FlowMetrics — every method is an empty body.
PostgreSQL dialect.
Reject action — v4 §8.4: targetStepId = "_INITIATOR_" → rollback to steps[0], cancel pending tasks, re-enter step 0 targetStepId = null → go to the previous approve/vote step inferred from history otherwise → must be a step id visited in history; jump there 驳回操作 —— 详见 v4 §8.4。
Step (node) definition inside a FlowDefinition.
Shared helper that materialises a Step into one or more PENDING Task rows for an existing FlowInstance.
Evaluates whether a given Step has reached its terminal state given the current set of Tasks and VoteRecords in the repository.
Three-valued evaluation result.
Step (node) type.
Approval / vote strategy that determines how a multi-assignee step decides "approved" / "rejected".
Current or historical task (mirrors flow_task row).
Domain event raised when a task is circulated (read-only notification).
Thrown when a task lookup by id returns no row.
Outcome of a completed Task.
Task-centric facade exposing the seven approval operations + todo / lookup.
Lifecycle status of a Task.
Transfer action — changes the assignee of a PENDING task (v4 §8.7).
Approval-path edge between two steps.
Resolves "where to go next" given a FlowDefinition and the current step, plus locates a sensible "previous approve / vote" target for reject.
Vote action — records the user's vote, marks task DONE+APPROVED (i.e.
Vote opinion submitted at a StepType.VOTE step.
Single vote cast at a StepType.VOTE step (mirrors flow_vote_record row).
Withdraw action (v4 §8.6).