Summary
On the Nitro 3.x vercel preset with workflow/nitro, the build emits:
- ✅
functions/.well-known/workflow/v1/step.func
- ✅
functions/.well-known/workflow/v1/flow.func
- ✅
functions/.well-known/workflow/v1/webhook/[token].func
- ✅
config.json route for /.well-known/workflow/v1/webhook/[token]
- ❌
config.json routes for /.well-known/workflow/v1/flow and /.well-known/workflow/v1/step
Repro
- Nitro vercel preset +
modules: ['workflow/nitro']
nitro build → inspect .vercel/output/config.json
Same result on nitro-imessage-agent-template with NITRO_PRESET=vercel (workflow ^4.2.4, nitro latest beta).
Versions tried (agora-factory)
nitro@3.0.1-alpha.1 + workflow@4.4.0 / 4.5.0
nitro@3.0.260610-beta + vite@7 (separate build failure — kysely resolution)
Impact
Dispatch/orchestration appears to work via queue triggers + webhook route (approval hooks). Direct HTTP POST /.well-known/workflow/v1/step hits the app catch-all instead.
Request
Emit flow/step routes in config.json before filesystem/catch-all when functions are present, or document that queue-only invocation is the supported Vercel contract.
Reported from agora-factory Phase 0 experiment (2026-06-16).
Summary
On the Nitro 3.x vercel preset with
workflow/nitro, the build emits:functions/.well-known/workflow/v1/step.funcfunctions/.well-known/workflow/v1/flow.funcfunctions/.well-known/workflow/v1/webhook/[token].funcconfig.jsonroute for/.well-known/workflow/v1/webhook/[token]config.jsonroutes for/.well-known/workflow/v1/flowand/.well-known/workflow/v1/stepRepro
modules: ['workflow/nitro']nitro build→ inspect.vercel/output/config.jsonSame result on nitro-imessage-agent-template with
NITRO_PRESET=vercel(workflow ^4.2.4, nitro latest beta).Versions tried (agora-factory)
nitro@3.0.1-alpha.1+workflow@4.4.0/4.5.0nitro@3.0.260610-beta+vite@7(separate build failure — kysely resolution)Impact
Dispatch/orchestration appears to work via queue triggers + webhook route (approval hooks). Direct HTTP
POST /.well-known/workflow/v1/stephits the app catch-all instead.Request
Emit flow/step routes in
config.jsonbefore filesystem/catch-all when functions are present, or document that queue-only invocation is the supported Vercel contract.Reported from agora-factory Phase 0 experiment (2026-06-16).