@sisu-ai/mw-agent-run-api
v8.0.0
Published
Expose production-ready run endpoints (start, status, stream, cancel) for Sisu agents.
Downloads
407
Readme
@sisu-ai/mw-agent-run-api
Expose production-ready run endpoints (start, status, stream, cancel) for Sisu agents.
Setup
npm i @sisu-ai/mw-agent-run-apiUsage
import { Agent } from '@sisu-ai/core';
import { agentRunApi } from '@sisu-ai/mw-agent-run-api';
import { Server } from '@sisu-ai/server';
const runApi = agentRunApi({ apiKey: 'secret' });
const app = new Agent().use(runApi);
const server = new Server(app, {
createCtx: (req, res) => ({ req, res, messages: [], signal: new AbortController().signal }),
bannerEndpoints: (runApi as any).bannerEndpoints,
});
server.listen();Routes
POST /api/runs/start– enqueue a run. Returns{ runId, status }with202 Accepted.GET /api/runs/:id/status– fetch run status and result.GET /api/runs/:id/stream– subscribe to run events via SSE.POST /api/runs/:id/cancel– request cancellation.
Options
| Option | Description | Default |
| ------ | ----------- | ------- |
| basePath | Mount point for routes | /api |
| apiKey | Require Authorization: Bearer header | none |
| maxBodyBytes | Maximum JSON body size | 1_000_000 |
| runStore | Storage implementing Sisu Memory interface | in-memory InMemoryKV |
| routes | Extra POST start endpoints with transforms | none |
Custom start routes
You can expose multiple start endpoints for different use cases, each with its own request shape and an optional logical pipeline tag. The pipeline is written to ctx.state.agentRun.pipeline so you can route using control-flow middleware.
const app = new Agent().use(agentRunApi({
routes: [
{
path: '/runs/support-ticket',
pipeline: 'support',
async transform(_req, body) {
// body is parsed JSON when available
return { input: `${body.subject}: ${body.message}` };
},
},
],
}));Routing by pipeline (example)
import { switchCase } from '@sisu-ai/mw-control-flow';
app.use(switchCase(
(c) => (c as any).state?.agentRun?.pipeline ?? 'default',
{
support: async (c) => { /* handle support */ },
default: async (c) => { /* fallback */ },
},
));Error responses
- 400 invalid_json: body could not be parsed as JSON
- 413 body_too_large: payload exceeds
maxBodyBytes - 422 missing_input:
{ input }is missing or null - 400 invalid_request: custom
transformthrew;messageincluded
SSE stream
Subscribe to server-sent events for a run:
curl -N http://localhost:3000/api/runs/<runId>/streamClient receives events like:
event: status
data: {"status":"running"}
event: final
data: {"result":"..."}Community & Support
Discover what you can do through examples or documentation. Check it out at https://github.com/finger-gun/sisu. Example projects live under examples/ in the repo.
Documentation
Core — Package docs · Error types
Adapters — OpenAI · Anthropic · Ollama
- @sisu-ai/mw-agent-run-api
- @sisu-ai/mw-context-compressor
- @sisu-ai/mw-control-flow
- @sisu-ai/mw-conversation-buffer
- @sisu-ai/mw-cors
- @sisu-ai/mw-error-boundary
- @sisu-ai/mw-guardrails
- @sisu-ai/mw-invariants
- @sisu-ai/mw-orchestration
- @sisu-ai/mw-rag
- @sisu-ai/mw-react-parser
- @sisu-ai/mw-register-tools
- @sisu-ai/mw-tool-calling
- @sisu-ai/mw-trace-viewer
- @sisu-ai/mw-usage-tracker
- @sisu-ai/tool-aws-s3
- @sisu-ai/tool-azure-blob
- @sisu-ai/tool-extract-urls
- @sisu-ai/tool-github-projects
- @sisu-ai/tool-rag
- @sisu-ai/tool-summarize-text
- @sisu-ai/tool-terminal
- @sisu-ai/tool-web-fetch
- @sisu-ai/tool-web-search-duckduckgo
- @sisu-ai/tool-web-search-google
- @sisu-ai/tool-web-search-openai
- @sisu-ai/tool-wikipedia
Anthropic — hello · control-flow · stream · weather
Ollama — hello · stream · vision · weather · web-search
OpenAI — hello · weather · stream · vision · reasoning · react · control-flow · branch · parallel · graph · orchestration · orchestration-adaptive · guardrails · error-handling · rag-chroma · web-search · web-fetch · wikipedia · terminal · github-projects · server · aws-s3 · azure-blob
Contributing
We build Sisu in the open. Contributions welcome.
Contributing Guide · Report a Bug · Request a Feature · Code of Conduct
Star on GitHub if Sisu helps you build better agents.
Quiet, determined, relentlessly useful.
