This repository was archived by the owner on Oct 2, 2026. It is now read-only.
Repository navigation
feature/Pipe-io-client · L-260830-f5b65e - #53
Merged
Merged
Conversation
pipe_io() wraps the new crate route that returns a method's pipe I/O contracts, input form and output form with no dry run, typed from mthds.protocol, with the selector XOR enforced at request construction. prepare_inputs now reads its signature from that route, which selects the pipe: the client-side default chain and the bundle-blueprint read are gone, a bare pipe_ref is still refused before any request, and a 422 whose error_type is the runner's entry-lookup error becomes an InputPreparationError carrying the server's reason. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
The changelog now names the address-based cross-package dependency the route refuses, and the docs say that a runner which renders a refused selection as a generic ValidationError is answered with ApiResponseError. The README example narrows pipe_ref before indexing, and the validate report's default_pipe_ref docstring no longer describes the blueprint fallback prepare_inputs dropped, nor the "none or several" rule validate never followed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
…x-api v0.33.1 The runner types a refused selection with the engine's entry-lookup error_type from pipelex-api v0.33.1, and names the candidates in its detail only, so prepare_inputs no longer reads a speculative candidates member: its message is the server's detail. The unit fixtures are the bodies the fixed runner answers, the docs and changelog name the runner floor, and the e2e suite gains a live ambiguous-selection case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
pipelex now refuses a bundle whose template never reads a declared input
(extraneous_input_variable), so prepare_inputs refused the round-trip
bundle before any upload. An empty {% if doc %} block reads doc without
rendering it, so the run still outputs the note alone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
…x/sdk does prepare_inputs now refuses an alias->domain.pipe_code ref before the bare check, with normalizePipeRef's wording: the alias names a dependency package's pipe, and the crate routes load no address-based dependency, so preparation covers the method's own pipes. The run routes take such a ref; the asymmetry is deliberate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
The hosted method_id case no longer creates a catalog method: it reads one already stored in the key's organization, named by PIPELEX_E2E_METHOD_ID, describes it under all_pipes with include_files, and prepares inputs by id with an upload at each file position. The method_ref case now runs under all_pipes and include_files too, and each refused-selection case checks the typed 422 relayed through the hosted proxy: the entry-lookup error_type, error_domain input, and the refused ref or the candidates in detail. The docstrings of PipeIORequest and pipe_io no longer call a refused selection a request-shape 422. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
The [Unreleased] entry for pipe_io() and prepare_inputs now sits above the [v0.15.0] section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
pipe_io(), the typed wrapper forPOST /v1/pipe-io, which returns a method's pipe I/O contracts, input form and output form with no dry run, with the selector XOR enforced at request construction as the rest of the crate family does.prepare_inputsnow reads its signature from that route and lets the server select the pipe, so the client-side default chain and the bundle-blueprint read are deleted; a barepipe_refis still refused before any request, and a422whoseerror_typeis the runner's entry-lookup error becomes anInputPreparationErrorcarrying the server's reason. It must not merge or release before the hosted API serves the route, since a publishedprepare_inputson/v1/pipe-iofails against any API that lacks it.Closes L-260830-f5b65e
Closes L-260921-e61f30
🤖 Generated with Claude Code
https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1
Summary by cubic
Adds
pipe_io(), the typed wrapper forPOST /v1/pipe-io, and movesprepare_inputsonto that route so the server selects the pipe.pipe_io()returns a method's pipe I/O contracts, input form and output form with no dry run, typed frommthds.protocol, with the selector XOR enforced at request construction.prepare_inputsdrops the client-side default chain and the bundle-blueprint read; a barepipe_refand an alias→domain.pipe_coderef naming a dependency package's pipe are each refused before any request, and a422whoseerror_typeis the runner's entry-lookup error becomes anInputPreparationErrorwhose message is the server's detail alone.{% if doc %}block) because pipelex refuses a bundle whose template never reads a declared input.Migration
prepare_inputsneeds a runner serving/v1/pipe-io(pipelex-api v0.33.1 or later) and raisesApiResponseErroragainst one that does not. Do not merge or release before the hosted API serves the route.Written for commit e5b69f0. Summary will update on new commits.