> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siftstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# artifacts

> sift/artifacts/v1/artifacts.proto

<a name="sift_artifacts_v1_artifacts-proto" />

<a name="sift_artifacts_v1_artifacts-proto-services" />

## Services

*RPC methods exposed by this API.*

### ArtifactService

ArtifactService manages artifacts: independent, org-scoped, versioned
documents. An artifact is not owned by a conversation. A conversation may
reference an artifact through a link, any number of conversations may link
the same artifact, and an artifact may exist with no link at all (for
example, created over MCP outside an agent session).

The service carries artifact metadata only. Version bytes live in
remote\_files (entity\_type 'artifact\_versions', entity\_id =
artifact\_version\_id): upload via the remote-files multipart endpoint,
download via RemoteFileService.GetRemoteFileDownloadUrl.

| Method                         | Request                                                                         | Response                                                                          | Description                                                                                                                                                                                         |
| :----------------------------- | :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CreateArtifact                 | [CreateArtifactRequest](#createartifactrequest)                                 | [CreateArtifactResponse](#createartifactresponse)                                 | Creates an artifact plus its version-1 row, or appends a version when artifact\_id is set. When conversation\_id is set on create, the new artifact is also linked to that conversation.            |
| GetArtifact                    | [GetArtifactRequest](#getartifactrequest)                                       | [GetArtifactResponse](#getartifactresponse)                                       | Resolves to the latest version unless artifact\_version\_id pins one.                                                                                                                               |
| ListArtifacts                  | [ListArtifactsRequest](#listartifactsrequest)                                   | [ListArtifactsResponse](#listartifactsresponse)                                   | One entry per artifact, resolved to its latest version, oldest first. With conversation\_id set, only artifacts linked to that conversation; otherwise every artifact in the caller's organization. |
| ListArtifactVersions           | [ListArtifactVersionsRequest](#listartifactversionsrequest)                     | [ListArtifactVersionsResponse](#listartifactversionsresponse)                     | Full version history of one artifact, newest first.                                                                                                                                                 |
| LinkArtifactToConversation     | [LinkArtifactToConversationRequest](#linkartifacttoconversationrequest)         | [LinkArtifactToConversationResponse](#linkartifacttoconversationresponse)         | Links an existing artifact to a conversation. Idempotent: linking an already-linked pair succeeds without effect.                                                                                   |
| UnlinkArtifactFromConversation | [UnlinkArtifactFromConversationRequest](#unlinkartifactfromconversationrequest) | [UnlinkArtifactFromConversationResponse](#unlinkartifactfromconversationresponse) | Removes one conversation's link to an artifact. The artifact itself is untouched. Idempotent: unlinking a missing link succeeds.                                                                    |
| ArchiveArtifact                | [ArchiveArtifactRequest](#archiveartifactrequest)                               | [ArchiveArtifactResponse](#archiveartifactresponse)                               | Sets archived\_date. Versions, stored bytes, and conversation links are left in place. Idempotent: archiving an already-archived artifact succeeds without changing archived\_date.                 |
| UnarchiveArtifact              | [UnarchiveArtifactRequest](#unarchiveartifactrequest)                           | [UnarchiveArtifactResponse](#unarchiveartifactresponse)                           | Clears archived\_date. Idempotent: unarchiving an active artifact succeeds without effect.                                                                                                          |

<a name="sift_artifacts_v1_artifacts-proto-messages" />

## Messages

*Data models used across requests/responses.*

### ArchiveArtifactRequest

| Field        | Type   | Label | Description |
| :----------- | :----- | :---- | :---------- |
| artifact\_id | string |       |             |

### ArchiveArtifactResponse

*This message has no fields.*

### Artifact

Container fields flattened together with one resolved version.

| Field                  | Type                                            | Label    | Description                                                                                                                                                                                              |
| :--------------------- | :---------------------------------------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| artifact\_id           | string                                          |          |                                                                                                                                                                                                          |
| organization\_id       | string                                          |          |                                                                                                                                                                                                          |
| created\_by\_user\_id  | string                                          |          |                                                                                                                                                                                                          |
| authoring\_kind        | [ArtifactAuthoringKind](#artifactauthoringkind) |          |                                                                                                                                                                                                          |
| created\_date          | google.protobuf.Timestamp                       |          |                                                                                                                                                                                                          |
| artifact\_version\_id  | string                                          |          |                                                                                                                                                                                                          |
| version                | uint32                                          |          |                                                                                                                                                                                                          |
| title                  | string                                          | optional |                                                                                                                                                                                                          |
| summary                | string                                          | optional |                                                                                                                                                                                                          |
| authoring\_message\_id | string                                          | optional | Set only for versions authored inside a conversation, and there only after the introducing message persists: uploads attach before the user sends, and agent turns persist messages only at end of turn. |
| source\_tool\_use\_ids | string                                          | repeated |                                                                                                                                                                                                          |
| remote\_file\_id       | string                                          | optional | Unset until bytes are uploaded.                                                                                                                                                                          |
| version\_created\_date | google.protobuf.Timestamp                       |          |                                                                                                                                                                                                          |
| file\_name             | string                                          | optional | From the version's remote\_files row. Unset until bytes are uploaded. Clients infer preview behavior from file\_name / file\_mime\_type.                                                                 |
| file\_mime\_type       | string                                          | optional |                                                                                                                                                                                                          |
| archived\_date         | google.protobuf.Timestamp                       | optional | Unset while the artifact is active.                                                                                                                                                                      |

### ArtifactVersion

| Field                  | Type                      | Label    | Description                                                           |
| :--------------------- | :------------------------ | :------- | :-------------------------------------------------------------------- |
| artifact\_version\_id  | string                    |          |                                                                       |
| artifact\_id           | string                    |          |                                                                       |
| version                | uint32                    |          |                                                                       |
| title                  | string                    | optional |                                                                       |
| summary                | string                    | optional |                                                                       |
| authoring\_message\_id | string                    | optional |                                                                       |
| source\_tool\_use\_ids | string                    | repeated |                                                                       |
| remote\_file\_id       | string                    | optional |                                                                       |
| created\_date          | google.protobuf.Timestamp |          |                                                                       |
| file\_name             | string                    | optional | From the version's remote\_files row. Unset until bytes are uploaded. |
| file\_mime\_type       | string                    | optional |                                                                       |

### CreateArtifactRequest

| Field            | Type                                            | Label    | Description                                                                                                                                                                                                                                            |
| :--------------- | :---------------------------------------------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| artifact\_id     | string                                          | optional | Set to append a version to an existing artifact; unset to create one.                                                                                                                                                                                  |
| conversation\_id | string                                          | optional | Set to link the new artifact to a conversation at create time. Legal only on create (not on append), and only for the conversation's author.                                                                                                           |
| title            | string                                          | optional |                                                                                                                                                                                                                                                        |
| summary          | string                                          | optional |                                                                                                                                                                                                                                                        |
| authoring\_kind  | [ArtifactAuthoringKind](#artifactauthoringkind) | optional | Defaults to USER. AGENT is self-reported: the agent pod authenticates with the requesting user's transient key, so until scoped pod credentials land (ENG-12831) authorship attribution rides on the same trust as the pod's message persistence path. |

### CreateArtifactResponse

| Field    | Type                  | Label | Description |
| :------- | :-------------------- | :---- | :---------- |
| artifact | [Artifact](#artifact) |       |             |

### GetArtifactRequest

| Field                 | Type   | Label    | Description |
| :-------------------- | :----- | :------- | :---------- |
| artifact\_id          | string |          |             |
| artifact\_version\_id | string | optional |             |

### GetArtifactResponse

| Field    | Type                  | Label | Description |
| :------- | :-------------------- | :---- | :---------- |
| artifact | [Artifact](#artifact) |       |             |

### LinkArtifactToConversationRequest

| Field            | Type   | Label | Description |
| :--------------- | :----- | :---- | :---------- |
| artifact\_id     | string |       |             |
| conversation\_id | string |       |             |

### LinkArtifactToConversationResponse

*This message has no fields.*

### ListArtifactVersionsRequest

| Field        | Type   | Label | Description |
| :----------- | :----- | :---- | :---------- |
| artifact\_id | string |       |             |
| page\_size   | uint32 |       |             |
| page\_token  | string |       |             |

### ListArtifactVersionsResponse

| Field             | Type                                | Label    | Description |
| :---------------- | :---------------------------------- | :------- | :---------- |
| versions          | [ArtifactVersion](#artifactversion) | repeated |             |
| next\_page\_token | string                              |          |             |

### ListArtifactsRequest

| Field             | Type   | Label    | Description                                               |
| :---------------- | :----- | :------- | :-------------------------------------------------------- |
| conversation\_id  | string | optional | Unset lists every artifact in the caller's organization.  |
| page\_size        | uint32 |          |                                                           |
| page\_token       | string |          |                                                           |
| include\_archived | bool   |          | When false (the default), archived artifacts are omitted. |

### ListArtifactsResponse

| Field             | Type                  | Label    | Description |
| :---------------- | :-------------------- | :------- | :---------- |
| artifacts         | [Artifact](#artifact) | repeated |             |
| next\_page\_token | string                |          |             |

### UnarchiveArtifactRequest

| Field        | Type   | Label | Description |
| :----------- | :----- | :---- | :---------- |
| artifact\_id | string |       |             |

### UnarchiveArtifactResponse

*This message has no fields.*

### UnlinkArtifactFromConversationRequest

| Field            | Type   | Label | Description |
| :--------------- | :----- | :---- | :---------- |
| artifact\_id     | string |       |             |
| conversation\_id | string |       |             |

### UnlinkArtifactFromConversationResponse

*This message has no fields.*

<a name="sift_artifacts_v1_artifacts-proto-enums" />

## Enums

*Allowed constant values used in message fields.*

### ArtifactAuthoringKind

| Name                                   | Number | Description |
| :------------------------------------- | :----- | :---------- |
| ARTIFACT\_AUTHORING\_KIND\_UNSPECIFIED | 0      |             |
| ARTIFACT\_AUTHORING\_KIND\_AGENT       | 1      |             |
| ARTIFACT\_AUTHORING\_KIND\_USER        | 2      |             |
