@ixo/flow-work
Oracle-side flow-work plugin: accept UCAN-delegated ixo.flow.work invocations
from the IXO flow-manager over Matrix and post receipts.
It is the oracle half of the flow-work contract. Flow-manager discovers a
capable oracle, mints a UCAN delegation scoped to a flow node, and sends an
ixo.flow.work.invoke event carrying the work brief by value. FlowWorkListener
validates the delegation (audience, expiry, signature chain, nb caveats),
runs the matching capability handler, and posts an ixo.flow.work.receipt.
The oracle never gains read authority over anything — inputs arrive in the
invocation, the result leaves in the receipt.
Install
pnpm add @ixo/flow-work
Peer dependencies: @ixo/oracle-runtime, @ixo/ucan, @nestjs/common,
matrix-js-sdk.
Releasing
This package versions independently of the flow-manager app via
Changesets. It lives outside the
pnpm workspace with its own lockfile, so its Changesets setup is self-contained
in this directory.
-
Make your change, then record it:
cd packages/flow-work
pnpm changeset
Commit the generated .changeset/*.md file with your PR.
-
On merge to main, the Release @ixo/flow-work workflow opens a
release/flow-work PR that bumps package.json + CHANGELOG.md.
-
Merging that PR publishes the new version to npm via OIDC trusted publishing.
A change with no changeset never releases this package, and a change to the
flow-manager app never releases this package — the two version independently.
The initial 0.1.0 publish is a one-time manual bootstrap
(publish-flow-work.yml, run from the Actions tab). Configure the npm trusted
publisher after that first release; the Changesets workflow needs no token.