Methods
Artifact payloads use
snake_case field names.
Artifact summary
Most list and get responses returnArtifactSummary.
Capabilities
Ask the gateway for limits before starting upload or download UI.required_for_local_paths means clients should upload local files to the gateway before referring to them in a turn. This is required for remote gateways and is the safe default for local gateways too.
Agent artifact tools
Agent-created user-visible files use model-facing tools, not client JSON-RPC methods. The tools are registered inside an agent turn when artifact registration is enabled, then made visible by turn preflight or byrequest_tools with the artifact domain.
artifact_prepare reserves a safe staging path before the file exists. It does not create an artifact.
outputPath is inside PIONEER_ARTIFACT_OUTPUT_DIR. It is a temporary gateway path that can be passed to shell, browser, renderer, MCP, or skill tools. It is not a durable artifact id and must not be treated as a client-visible file location.
artifact_register imports a completed regular file into the workspace artifact store and binds it to the current turn.
artifact_register errors include: the file does not exist, the path is outside the allowed workspace or staging roots, the path escapes through a symlink, the path is not a regular file, the file is too large, the workspace quota would be exceeded, or the file was already removed from staging.
If the final assistant message mentions PIONEER_ARTIFACT_OUTPUT_DIR or a private gateway path instead of a registered artifact, the gateway can ask the agent to retry registration once. If registration still does not happen, the turn fails instead of presenting a private path as the result.
artifact_read
artifact_read is the model-facing read tool for artifact continuity. It is different from the client JSON-RPC method artifact/read.
The model sees artifact refs in recent history or recalled thread context as metadata. If it needs actual file content, it requests the hidden artifact domain and then calls artifact_read for the specific artifact ids it needs. The gateway resolves workspace, thread, turn, and authorization from the active agent turn; the model does not pass workspace_id.
Typical arguments are camelCase because this is a model tool contract:
artifact_read visible by themselves. They tell the model what can be requested. The capability becomes callable only after normal tool visibility rules reveal the artifact domain.
Listing artifacts
Useartifact/list/thread for the thread artifacts panel.
artifact/list/thread for a draft thread that has not been materialized. The gateway validates that the thread exists and belongs to the workspace.
Reading small content
artifact/read is for previews, small text, and ranged reads. It returns base64 inside a JSON response and is capped by the gateway’s JSON read limit.
Upload flow
Start an upload session:artifact/upload/start, send chunks as binary WebSocket frames on the same authenticated connection.
Upload binary chunk frame
Header:
artifact/upload/chunk_ack:
next_offset as the authoritative resume point.
Finish the upload:
artifact/upload/abort.
Download flow
Start a download session:Download binary chunk frame
Header:
artifact/download/finish. If the user cancels, call artifact/download/abort.
Binding existing artifacts
Useartifact/bind when a client or gateway flow needs to associate an existing artifact with a new message, turn, tool call, or task result.
Notifications
Clients should refresh thread artifact lists on
thread/artifacts/changed, as well as on artifact/created. An artifact may gain new bindings or metadata without getting a new artifact id.
Client rules
- Always include
workspace_id. - Do not list artifacts for draft threads that have not been created on the gateway.
- Use
artifact/readonly for small ranges or projections; use download sessions for full files. - Verify
sha256for completed uploads, download chunks, and final downloaded files. - Treat desktop paths and gateway paths as different machines unless you know the gateway is local.
- Store local preview/download caches as disposable client state.
- Use generated schemas from
/schemasfor exact validation.