feature/Artifact-field-names · L-260924-27d936
download_artifacts now names each saved file after the field it fills, following the rule pipelex-sdk-js states in its docs/artifact-download.md, and every verdict item carries found_at on both arms. The new locate_artifacts returns each reference with every path it sits at, and artifact_filename now takes that location, so a verdict item predicts its own saved name. A cross-SDK run of one corpus through both implementations found no difference in the paths or the names.
Closes L-260924-27d936
Advances L-260924-ec45a1
🤖 Generated with Claude Code
https://claude.ai/code/session_01KAUFtFH3dukuR2CkwoH9wv
Summary by cubic
download_artifacts now names each saved file after the field it fills, matching the rule pipelex-sdk-js documents, and every verdict item carries found_at on both arms. A new locate_artifacts returns each pipelex-storage:// reference together with every $-rooted path it sits at, in the same discovery order as collect_artifacts, so a consumer can predict a saved filename before downloading. A cross-SDK run of one corpus through both implementations found no difference in the paths or the names.
artifact_filename now takes an ArtifactLocation and scope instead of a URI and index, and files are named from the first path at which their reference sits (for example, $.rooms[3].staged_photo.url is saved as rooms-3-staged_photo.png).
Breaking changes
artifact_filename(location, content_type, scope)replaces the old URI-based signature and raisesArtifactOperationErrorfor anything that is not a valid location.DownloadedArtifactnow extendsArtifactLocationand requiresfound_at; code that builds verdict items, such as test fakes, must supply it.
Closes L-260924-27d936. Advances L-260924-ec45a1.