Skip to content

Clarify the operation/JSX model and what “RSC runtime” does not provide #88

Description

@ScriptedAlchemy

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:

  1. What is an operation?
  2. Which parts are shared by CLI and MCP?
  3. Which projection consumes render?
  4. Is any React Server Components renderer or Flight transport involved?
  5. Why are operation modules .tsx?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions