Problem
The current framework-mode example makes the central abstraction difficult to recognize:
examples/audiobook-curator/src/application.ts only composes operation arrays, so it contains no JSX.
- Each
src/operations/*.tsx file contains mostly schemas, CLI parsing, and MCP metadata; its JSX may be only render: (receipt) => <CuratorResult ... />.
src/result.tsx renders <Mcp.Result> / <Mcp.Text>, which lowerMcpResult synchronously lowers into an MCP CallToolResult.
- The CLI projection does not render JSX at all; it serializes the validated result as JSON.
@agent-bundle/rsc-runtime explicitly does not own an RSC renderer, transport, persistence, or application state.
A reader reasonably expects “RSC runtime” and .tsx operation files to expose React Server Component composition or a server-rendering lifecycle. What exists today is a shared typed operation definition with optional CLI/MCP projections and a React-element result DSL for the MCP projection.
Why it matters
This obscures what an operation actually is and makes framework mode look either more magical or less complete than it is. It also makes it unclear whether JSX is the application model, the transport result format, or merely an MCP serializer.
Suggested direction
- Document one operation end to end: input schema -> execute -> result schema -> CLI JSON output and MCP JSX lowering.
- State explicitly that an operation is a host-neutral use-case/endpoint definition, not a CLI command.
- State explicitly whether the package intends to become a real RSC renderer/runtime or remain a synchronous React-element protocol DSL.
- If it remains the latter, reconsider the
rsc-runtime naming or introduce terminology that does not imply a React Server Components transport/lifecycle.
- Show the actual JSX in the primary framework-mode example instead of making readers discover the one-line renderer at the bottom of a metadata-heavy file.
Acceptance
A new reader can answer, from the framework-mode docs alone:
- What is an operation?
- Which parts are shared by CLI and MCP?
- Which projection consumes
render?
- Is any React Server Components renderer or Flight transport involved?
- Why are operation modules
.tsx?
Problem
The current framework-mode example makes the central abstraction difficult to recognize:
examples/audiobook-curator/src/application.tsonly composes operation arrays, so it contains no JSX.src/operations/*.tsxfile contains mostly schemas, CLI parsing, and MCP metadata; its JSX may be onlyrender: (receipt) => <CuratorResult ... />.src/result.tsxrenders<Mcp.Result>/<Mcp.Text>, whichlowerMcpResultsynchronously lowers into an MCPCallToolResult.@agent-bundle/rsc-runtimeexplicitly does not own an RSC renderer, transport, persistence, or application state.A reader reasonably expects “RSC runtime” and
.tsxoperation files to expose React Server Component composition or a server-rendering lifecycle. What exists today is a shared typed operation definition with optional CLI/MCP projections and a React-element result DSL for the MCP projection.Why it matters
This obscures what an
operationactually is and makes framework mode look either more magical or less complete than it is. It also makes it unclear whether JSX is the application model, the transport result format, or merely an MCP serializer.Suggested direction
rsc-runtimenaming or introduce terminology that does not imply a React Server Components transport/lifecycle.Acceptance
A new reader can answer, from the framework-mode docs alone:
render?.tsx?