Capabilities, not tools
An ordinary oRPC procedure plus governance metadata is a capability. One definition serves your UI, AI runtimes, MCP clients, and tests โ no duplicated schemas that drift.
Make agents first-class clients of your oRPC application โ the same typed procedures, with explicit exposure, policies, approvals, audit, and tracing.
Status: v0.1 implemented and published to npm (
@orpc-agent/*at 0.1.0). These documents are the source of truth the implementation was built from; where the build forced a change, the decision records carry an as-built addendum. Independent community project, not affiliated with the oRPC maintainers.
Start here: Getting started ยท The idea in one page: Architecture overview ยท The worked example: Customer-support agent ยท Full-stack with Mastra: Task board
Audience key: U = application developers using the framework ยท I = implementers/contributors building it ยท S = security reviewers.
| Doc | Answers | Builds on |
|---|---|---|
| capabilities | What is a capability; why not "tool"; granularity | โ |
| registry | Identity, inclusion, filtering | capabilities |
| runtime | What executes; the result envelope | capabilities |
| context | Actor vs execution context; ctx.agent | runtime |
| policies | Decisions, phases, precedence โ normative semantics | runtime |
| approvals | The lifecycle; input binding โ normative semantics | policies |
| errors | Two-face errors; stages; model feedback | runtime |
| lifecycle | One request end-to-end, narrated | all of the above |
| Doc | Answers |
|---|---|
| overview | Layers, boundaries, the five core objects |
| execution-pipeline | The stage-by-stage runtime spec (cited as "stage N") |
| package-boundaries | Five packages, dependency rules, non-responsibilities |
| adapter-model | The four adapter obligations; conformance |
| decisions | ADR-001โฆ012 |
| Doc | Answers |
|---|---|
| security-model | SI-1โฆSI-12; the five gates; honest non-claims |
| authorization | Four layers; middleware authority; multi-tenancy |
| prompt-injection | What's bounded, what isn't, what's yours |
| sensitive-data | Five lenses; redaction defaults |
| idempotency-and-retries | Exact guarantees and non-guarantees |
| threat-model | Assets, adversaries, T1โT15 |
ai-sdk ยท mcp ยท opentelemetry ยท testing
defining-capabilities ยท capability-exposure ยท adding-policies ยท human-approval ยท application-context ยท auditing ยท testing-capabilities ยท migrating-existing-tools
core ยท metadata ยท runtime ยท events ยท errors ยท configuration
| Doc | Answers |
|---|---|
| implementation/brief | The definitive build instructions for the coding agent |
| implementation/milestones | M1โM9 increments with acceptance criteria |
| open-questions | Every unresolved decision, in one place |
| roadmap | What's v0.1, what's later, what's never |
| faq ยท glossary | Quick answers ยท enforced terminology |
| contributing/ | Dev setup, docs style, releases, governance |