Architecture First, the path of one call through the layers, recorded from the real code. Then the map of the 33 packages that hold those layers.
The journey of one call One streaming call, shop.receipt, through the real client, middlewares, transport, server and interceptors. The page runs them in a worker and records each step when it happens. The handler makes two nested calls, then yields three items, and each item goes back up through every layer.
In process HTTP WebSocket MCP
HttpTransport sends a POST request. The server answers a stream as NDJSON, one line for each item.
App Retry Timeout Transport Wire Server Interceptors Validation Handler Nested calls
App •
The stream ends. The app has 3 items.
The code that makes the call and reads the items.
The app has Item 1: 2.50 Item 2: 5.50 Total with tax: 10.00 The steps as text App The app calls client.stream: it wants each item as it arrives.Retry The retry middleware gets the request.Retry The retry middleware passes the request on.Timeout The timeout middleware gets the request.Timeout The timeout middleware passes the request on.Transport HttpTransport turns the method shop.receipt into a URL.Wire The request goes over the wire.Server HttpServerTransport checks the browser rules, reads the request and calls ProcedureServer.handle.Interceptors The tracing interceptor opens a span for shop.receipt.Validation invokeProcedure validates the input with the input schema of the procedure.Wire The server answers 200 with NDJSON: the client asked for it in Accept.Handler The handler of shop.receipt starts.Handler The handler calls client.sum through ctx.client.Nested calls The tracing interceptor opens a span for the nested call client.sum.Nested calls The nested call client.sum ends: its span closes (ok).Handler client.sum gives 8 to the handler.Handler The handler calls client.multiply through ctx.client.Nested calls The tracing interceptor opens a span for the nested call client.multiply.Nested calls The nested call client.multiply ends: its span closes (ok).Handler client.multiply gives 10 to the handler.Handler The handler yields item 1.Validation invokeProcedure validates item 1 with the output schema.Interceptors Item 1 leaves the interceptors.Wire Item 1 goes over the wire as one NDJSON line.Transport HttpTransport reads item 1 and gives it to the middleware.Timeout Item 1 goes up through the timeout middleware.Retry Item 1 goes up through the retry middleware.App The app gets item 1.Handler The handler yields item 2.Validation invokeProcedure validates item 2 with the output schema.Interceptors Item 2 leaves the interceptors.Wire Item 2 goes over the wire as one NDJSON line.Transport HttpTransport reads item 2 and gives it to the middleware.Timeout Item 2 goes up through the timeout middleware.Retry Item 2 goes up through the retry middleware.App The app gets item 2.Handler The handler yields item 3, the last one.Validation invokeProcedure validates item 3 with the output schema.Interceptors Item 3 leaves the interceptors.Wire Item 3 goes over the wire as one NDJSON line.Transport HttpTransport reads item 3 and gives it to the middleware.Timeout Item 3 goes up through the timeout middleware.Retry Item 3 goes up through the retry middleware.App The app gets item 3.Handler The handler returns: the stream ends.Interceptors The span of shop.receipt closes: ok, 3 items.Wire The last line tells the client that the stream is done.App The stream ends. The app has 3 items.The packages The 33 packages of the workspace and their dependencies, generated from each package.json. A column is a level: a package uses only packages to its left. Point at a package, or move the focus to it with Tab, to see its dependencies. Click it or press Enter for the details. The list under the map gives the same data as text.
Core Procedure package or library Bundle App or tool Uses Used by
markmark: one CLI for every procedure package. It finds the procedures, parses flags by their Zod types, runs local or through a fast warm server, and asks for missing arguments.
Name @procedures/markKind App or tool Level 6 Source 3,331 lines Procedures 0 Uses (24) bundle-dev , bundle-mcp , client , client-cli , client-cue , client-docker , client-fs , client-git , client-lib , client-mongo , client-node , client-pnpm , client-procedure , client-s3 , client-server , client-shell , client-snapshot , client-splay , client-sqlite , client-store , client-vite , client-vitest , impl-mcp-dev , server
Used by (0) No workspace package.
Read the README → Source on GitHub →
The packages as a list, by level Level 1 client-fs Procedure package, uses client client-mongo Procedure package, uses client, client-collections client-playground Library, uses client client-procedure Procedure package, uses client client-s3 Procedure package, uses client client-server Procedure package, uses client client-shell Procedure package, uses client client-splay Procedure package, uses client client-sqlite Procedure package, uses client client-store Procedure package, uses client, client-collections mcp Core, uses client site App or tool, uses client Level 2 client-cli Procedure package, uses client, client-shell client-cue Procedure package, uses client, client-fs, client-shell client-docker Procedure package, uses client, client-shell client-git Procedure package, uses client, client-shell client-mcp Procedure package, uses client, mcp client-node Procedure package, uses client, client-shell client-pnpm Procedure package, uses client, client-shell client-vite Procedure package, uses client, client-shell client-vitest Procedure package, uses client, client-shell server App or tool, uses client, client-server Level 3 client-lib Procedure package, uses client, client-dag, client-fs, client-git, client-pnpm, client-shell client-snapshot Procedure package, uses client, client-fs, client-git, client-pnpm, client-s3, client-shell Level 4 bundle-dev Bundle, uses client, client-cli, client-dag, client-fs, client-git, client-lib, client-pnpm, client-procedure, client-shell bundle-mcp Bundle, uses client, client-cue, client-docker, client-lib, client-mongo, client-procedure, client-sqlite, client-vitest Level 5 impl-mcp-dev App or tool, uses bundle-mcp, client, client-mcp Level 6 mark App or tool, uses bundle-dev, bundle-mcp, client, client-cli, client-cue, client-docker, client-fs, client-git, client-lib, client-mongo, client-node, client-pnpm, client-procedure, client-s3, client-server, client-shell, client-snapshot, client-splay, client-sqlite, client-store, client-vite, client-vitest, impl-mcp-dev, server