feature/Client-sends-files · L-261015-bebfc9
MthdsAPIClient and the local PipelexRunner now take a method as files, the MTHDS standard's map of file entries, in place of mthds_contents, and the client can send a tree by hash: VersionInfo declares blob_store, the protocol models carry the blob routes' shapes, and prepare_files sends a tree inline when its encoded map is small or the runner keeps no blob store, otherwise uploading only the blobs POST /blobs/missing names. This is the breaking protocol change pipelex-sdk's Python client builds on.
Closes L-261015-bebfc9
Closes L-261016-b75856
Advances L-261012-989e43
🤖 Generated with Claude Code
Summary by cubic
Replaces inline mthds_contents with files, the MTHDS standard's map of file entries, in MthdsAPIClient and the local PipelexRunner, and lets the client send a method tree by hash. prepare_files sends the tree inline when its encoded map is small or the runner keeps no blob store, otherwise uploading only the blobs the runner lacks and referencing every file by hash. This is a breaking protocol change that pipelex-sdk's Python client builds on.
VersionInfonow reportsblob_store; the blob routes' wire shapes are typed models.- Files are read and hashed off the event loop, an upload sends only its target's headers and never the API key, and a refused upload raises
BlobUploadError.
Closes L-261015-bebfc9 and L-261016-b75856; advances L-261012-989e43.