Skip to content

rust(feat): generic artifact store tools - #779

Draft
evan-sift wants to merge 3 commits into
mainfrom
rust/artifact-store-generic
Draft

rust(feat): generic artifact store tools#779
evan-sift wants to merge 3 commits into
mainfrom
rust/artifact-store-generic

Conversation

@evan-sift

Copy link
Copy Markdown
Collaborator

Description

Extends the artifact MCP tools for the generic artifact store exposed by sift.artifacts.v1.

  • Syncs the updated artifacts.proto (storage class, created-via surface, kind, JSON payload, metadata, links, CEL filter and order_by, link RPCs) and regenerates the Rust bindings.
  • list_artifacts accepts filter (CEL) and order_by, and documents the filterable fields, enum comparisons, links.exists(...) and metadata["<key>"] forms. Results are scoped to the caller's organization.
  • create_artifact accepts kind, storage_class (file | structured | blob), created_via (chat | canvas | sdk | upload), a structured JSON payload, metadata, and links. Local validation rejects payload/storage-class mismatches before any request. Omitted container fields stay unset on append so existing artifacts keep their class.
  • download_artifact documents that structured artifacts carry their payload inline.
  • Mock server covers the three new link RPCs; tests cover the new parameters and rejection paths.

Existing callers of list_artifacts, create_artifact, and download_artifact keep working unchanged.

Depends on the matching server change to sift.artifacts.v1 landing first; against an older server the new create parameters are ignored and filter / order_by are unsupported.

Verification

  • cargo fmt --all -- --check
  • cargo clippy --all-features -p sift_mcp -p sift_test_util (only the pre-existing too_many_arguments warning in service/report_templates)
  • cargo test -p sift_mcp -p sift_test_util: 524 + 6 passed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant