Artifacts
Library Artifacts: agent-produced deliverables (reports, dashboards, plans, PDFs, documents).
Access it as client.artifacts on a Strongly client, or the same path on AsyncStrongly with await. All methods exist on both with identical signatures.
Quick start
from strongly import Strongly
client = Strongly()
# List (auto-paginates as you iterate) # filters: search, artifact_type, tags, producer_agent_id, producer_skill_id
for artifact in client.artifacts.list():
print(artifact.id)
Methods
Core
list
list(*, search: str | None = None, artifact_type: str | None = None, tags: list[str] | None = None, producer_agent_id: str | None = None, producer_skill_id: str | None = None, limit: int | None = None) -> SyncPaginator[Artifact]
List artifacts visible to the caller, with pagination and filters.
Parameters
search(str | None, optional): Full-text search over title and summary.artifact_type(str | None, optional): Filter by artifact type.tags(list[str] | None, optional): Filter by tags.producer_agent_id(str | None, optional): Restrict to artifacts produced by an agent.producer_skill_id(str | None, optional): Restrict to artifacts produced by a skill.limit(int | None, optional): Maximum number of items to return (default: all matching items).
Returns
SyncPaginator[Artifact]: A paginator yieldingArtifactobjects.
create
create(*, title: str, artifact_type: str, content_type: str, content: str, summary: str | None = None, tags: Sequence[str] | None = None) -> Artifact
Create an artifact.
Parameters
title(str): Human-readable artifact title.artifact_type(str): The artifact type (e.g.report,dashboard).content_type(str): MIME content type of the payload.content(str): The artifact payload (base64 for binary, plain string for text).summary(str | None, optional): Optional short summary.tags(Sequence[str] | None, optional): Optional tags.
Returns
Artifact: The createdArtifact.
retrieve
retrieve(artifact_id: str) -> Artifact
Retrieve a single artifact by id.
update
update(artifact_id: str, *, title: str | None = None, summary: str | None = None, tags: Sequence[str] | None = None) -> Artifact
Update editable artifact metadata (title, summary, tags).
delete
delete(artifact_id: str) -> None
Delete an artifact. Raises on failure; returns nothing.
Other
add_member
add_member(resource_id: str, *, user_id: str, role: str) -> Permissions
Share the resource with a user.
Parameters
resource_id(str): The resource's id.user_id(str): The user to share it with.role(str):"editor"(use and change it) or"user"(use it only; types without a use-only tier, such as knowledge bases, take"editor"only).
download_url
download_url(artifact_id: str, *, ttl_seconds: int | None = None) -> ArtifactDownloadUrl
Return a short-lived pre-signed URL for the artifact content.
Default TTL is 5 minutes; pass ttl_seconds up to 900 (15 minutes)
when the downstream consumer needs longer.
list_versions
list_versions(artifact_id: str) -> list[ArtifactVersion]
List an artifact's versions, newest first (each save of new content adds one).
permissions
permissions(resource_id: str) -> Permissions
Return who can reach the resource: its owner, members and their roles, and visibility.
Parameters
resource_id(str): The resource's id.
refresh_size
refresh_size(artifact_id: str) -> Artifact
Re-read the S3 object size and refresh contentSizeBytes (idempotent).
remove_member
remove_member(resource_id: str, user_id: str) -> None
Stop sharing the resource with a user.
Parameters
resource_id(str): The resource's id.user_id(str): The user to stop sharing it with.
restore_version
restore_version(artifact_id: str, version_number: int) -> Artifact
Restore an earlier version: a new version with its content is added, history is kept.
set_visibility
set_visibility(resource_id: str, visibility: str) -> Permissions
Make the resource public (every user can find and use it) or private.
Parameters
resource_id(str): The resource's id.visibility(str):"public"or"private".