Skip to main content

synth_ai.research.hosted_artifacts

client.research.hosted_artifacts — Open Research hosted artifact operator API.

Classes

ResearchHostedArtifactsAPI

Operator CRUD access to SMR hosted artifacts (Open Research alpha). Hosted artifacts are HTML proof pages materialized by artifact_builder workers during a run. Creation still happens in-run via the publish_hosted_artifact MCP tool; this namespace covers operator read, metadata patch, promote, review dispatch, and delete.
OperationSDKBackend
CreateWorker MCP publish_hosted_artifactIn-run service write
Readlist, get, get_for_run, get_contentGET list/detail/receipt/content
Updateupdate, publish_public, assign_reviewerPATCH + promote/review routes
DeletedeleteDELETE /smr/hosted-artifacts/{id}
Methods:

list

list(self) -> list[dict[str, Any]]
List hosted artifacts for the org or one project. Args:
  • project_id: When set, restrict to artifacts built under that project.
  • limit: Maximum rows to return (server capped at 250).
Returns:
  • Artifact receipts with project_id, hosted_url, public_url,
  • and slug when promoted.

get

get(self, hosted_artifact_id: str) -> dict[str, Any]
Read one hosted artifact receipt with URLs. Args:
  • hosted_artifact_id: Primary key from list or get_for_run.
Returns:
  • Receipt JSON from GET /smr/hosted-artifacts/{id}.

get_for_run

get_for_run(self, run_id: str) -> dict[str, Any]
Read hosted artifact receipt for a run. Args:
  • run_id: SMR run id that built or owns the artifact.
Returns:
  • Status payload from GET /smr/runs/{run_id}/hosted-artifact.

get_content

get_content(self, hosted_artifact_id: str) -> str | bytes
Read hosted HTML body by artifact id.

update

update(self, hosted_artifact_id: str) -> dict[str, Any]
Patch hosted artifact metadata and optional public shell fields. Args:
  • hosted_artifact_id: Artifact to update.
  • title: Replace artifact title (and public title when promoted).
  • metadata: Shallow-merge into artifact metadata.
  • theme: Public index theme when a publication exists.
  • summary: Public summary when a publication exists.
  • kind: Public kind when a publication exists.
  • visibility: private, org, or public. Demoting from public removes the public shell row.
Returns:
  • Updated receipt from PATCH /smr/hosted-artifacts/{id}.

publish_public

publish_public(self, hosted_artifact_id: str, slug: str) -> dict[str, Any]
Promote a hosted artifact to the public Open Research index.

assign_reviewer

assign_reviewer(self, hosted_artifact_id: str, reason: str) -> dict[str, Any]
Dispatch an artifact_reviewer task for a hosted artifact.

delete

delete(self, hosted_artifact_id: str) -> dict[str, Any]
Delete a hosted artifact and its stored HTML. Args:
  • hosted_artifact_id: Artifact to delete.
Returns:
  • Deletion receipt with deleted and hosted_artifact_id.

list_public

list_public(self) -> list[dict[str, Any]]
List public Open Research artifacts (unauthenticated index JSON).

get_public

get_public(self, slug: str) -> dict[str, Any]
Read one public artifact bundle by slug.