This documentation site
The agents documentation is a sub-site of the CEDM Platform website, in the repository's
website/ directory: a landing page at /agents and the documentation at /agents/docs.
cd ../../website && bun install
bun run start # http://localhost:3000/agents/docs, reloads as you edit
bun run build # static site in website/build/
Its pages are generated by website/scripts/sync-agents-docs.ts, so there is one copy of
everything: the manual's sections become the getting-started, user-guide, configuration, operations
and reference pages; the plan becomes the design section; this README gives the source layout and
project status; and each JSON Schema, with the definition file this repository ships, becomes a field
reference. The field descriptions are the Rust structs' doc comments (app/src/definitions/),
carried through task schema_export. Edit those sources, never website/agents-docs/ (it is not
committed). Only website/agents-content/ (the introduction and the glossary) is written for the
site itself.
bun run check fails if a manual section, a schema or a link has no place on the site, and the
build fails on a broken link or anchor.
The website is published to Cloudflare Pages by .github/workflows/cloudflare-pages.yml, on every
push to main that changes one of its sources (or by hand from the Actions tab). It needs two
repository secrets, CLOUDFLARE_API_TOKEN (with "Cloudflare Pages: Edit") and
CLOUDFLARE_ACCOUNT_ID; until they exist the workflow builds the site and skips the deploy.
What the tests hold: the invoice run pauses for approval, resumes after a process restart and posts exactly once however often it is replayed (counted at a real webhook receiver); four-eyes, role and tenant isolation are enforced; refused edits leave the approval open; tenant overrides apply to that tenant only; changed bank details force a person even when auto-approval is on; model output that breaks the schema fails the run; tampering with the audit log breaks its chain; uploads are deduplicated, parsed, embedded and can start a run; a pre-1.0 AG-UI client gets the legacy event.