feature/Artifact-field-names · L-260924-27d936

Merged
LC
1mo ago
+730-185

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 raises ArtifactOperationError for anything that is not a valid location.
  • DownloadedArtifact now extends ArtifactLocation and requires found_at; code that builds verdict items, such as test fakes, must supply it.

Closes L-260924-27d936. Advances L-260924-ec45a1.