fabro/lib/components/fabro-workflow
Bryan Helmkamp bd59f52e22
Build the run's display graph from Petri's admission
The rest of the change whose deletions the previous commit carries (its
`git add` stopped at an already-removed path): `fabro_types::RunGraph`
and the `fabro-petri` builder that reads it off the admitted graph, the
server's create, validate, preflight and render paths on Petri's check
alone, the consumers moved to the new shape, the OpenAPI `RunGraph`
schemas with their parity tests, the regenerated TS client, and the
docs naming Petri's diagnostic codes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-19 11:41:58 -04:00
..
src Build the run's display graph from Petri's admission 2026-09-19 11:41:58 -04:00
Cargo.toml Build the run's display graph from Petri's admission 2026-09-19 11:41:58 -04:00
README.md Build the run's display graph from Petri's admission 2026-09-19 11:41:58 -04:00

fabro-workflow

Fabro's platform half of a workflow run: what Fabro does around the engine.

Petri compiles and executes every run. fabro-petri is the one crate that talks to it, and this crate keeps what Fabro itself owns:

  • operations — creating a run around Petri's admission (materialize_admitted_run, persist_create_run), and the other run operations: fork, rewind, retry, and the timeline they resolve targets on. The run's display graph (fabro_types::RunGraph) is read off the graph Petri admitted; the DOT the workflow was written in is persisted beside it as graph_source.
  • workflow_bundle — the bundle a run is created from: every workflow of the version closure with its settings file and its files, and the RunDefinition the run records.
  • git, sandbox_git — the Git helpers a run's platform effects use, on the host and inside a sandbox.
  • pull_request — pull request creation for a finished run.
  • run_tools, services — the run tools an agent session calls.
  • web_search — the built-in web search backend.
  • run_lookup — resolving a run selector to a run.

The run records and status vocabulary are fabro_types'. Workflow diagnostics are Petri's: fabro validate, fabro preflight and the create handler report Petri's codes (attractor.*, unsupported.*, deprecated.*, info.*), plus Fabro's fabro.model.no_ready_provider when a model node has no provider ready to run it.