@wfgraph/core@3.0.0
Major Changes
- #145
708ac73Thanks @alandotcom! - Replace the persisted GroupexitNodeIdfield withexitNodeIds, and support lookup groups whose exits share one downstream endpoint.
Minor Changes
-
#128
c2ae17bThanks @alandotcom! - Add a build agent to the workflow editor: a chat panel that reads the extension
catalog and the open workflow, then edits the canvas as it answers.A host turns it on with a new
agentoption oncreateWfGraphApp, carrying an
OpenAI API key and optionally a model id and an OpenAI-compatible endpoint.
Absent or blank, the agent is off: no model is called and the editor shows no
panel, so an adopter who wants no AI in their editor writes nothing.The agent has fourteen tools. Seven read (search the action catalog, describe one
action's config and output fields, list Events and integrations, read the graph,
list the template tokens a step may reference, and validate the workflow) and
seven write (add, update and delete a step, connect and disconnect steps, declare
the Lifecycle Rules, and write a Condition's test). They run on the server against
the graph the editor sends with each turn, and the resulting graph streams back
so the canvas redraws as the agent works. The edit lands through the editor's own
save path, so it is one undo step and the autosave persists it.GET /api/extensionsnow answersagent: { enabled }besidecatalog, which is
how the editor knows whether to offer the panel.agent.chatis the first
streaming RPC procedure in the contract, declared as an oRPC event iterator.The
effectcatalog moves to4.0.0-rc.110, which the@effect/ai-openai
provider names as its peer.
Patch Changes
-
#151
1da1bafThanks @alandotcom! - Improve build-agent authoring for Wait steps, Event Split outlets, condition reference fields, and draft publication blockers. -
#128
c2ae17bThanks @alandotcom! - Prevent the build agent from applying workflow edits that violate graph topology rules. -
#148
01da8e0Thanks @alandotcom! - Stop sending start and result payloads on the run-list procedures.getExecutionspolls every two seconds while the Runs tab is open, and
getExecutionsGlobalpages the dashboard. Neither list paintsinputor
output, yet both selected those JSONB columns and redacted them on every
answer. Payloads stay ongetExecutionLogs, which is fetched for the one open
run.