AgentSessionManager.Persistence.ArtifactRegistry
(AgentSessionManager v0.8.0)
Copy Markdown
View Source
Tracks artifact metadata in the asm_artifacts table.
Provides registration, lookup, and statistics for artifacts stored in any backing store (S3, local filesystem, etc.).
The registry only manages metadata — actual artifact content
is handled by the ArtifactStore port.
Usage
{:ok, registry} = ArtifactRegistry.start_link(repo: MyApp.Repo)
# Register an artifact after storing it
:ok = ArtifactRegistry.register(registry, %{
session_id: "ses_123",
run_id: "run_456",
key: "patches/fix.diff",
byte_size: 1234,
checksum_sha256: "abc123...",
storage_backend: "s3",
storage_ref: "s3://bucket/patches/fix.diff"
})
# List artifacts for a session
{:ok, artifacts} = ArtifactRegistry.list_by_session(registry, "ses_123")
Summary
Functions
Returns a specification to start this module under a supervisor.
Soft-delete an artifact by key.
Get artifact metadata by key.
List artifacts for a session.
Register artifact metadata.
Get aggregate stats for a session's artifacts.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec delete(GenServer.server(), String.t()) :: :ok | {:error, AgentSessionManager.Core.Error.t()}
Soft-delete an artifact by key.
@spec get_by_key(GenServer.server(), String.t()) :: {:ok, map() | nil} | {:error, AgentSessionManager.Core.Error.t()}
Get artifact metadata by key.
@spec list_by_session(GenServer.server(), String.t(), keyword()) :: {:ok, [map()]} | {:error, AgentSessionManager.Core.Error.t()}
List artifacts for a session.
@spec register(GenServer.server(), map()) :: :ok | {:error, AgentSessionManager.Core.Error.t()}
Register artifact metadata.
@spec session_stats(GenServer.server(), String.t()) :: {:ok, map()} | {:error, AgentSessionManager.Core.Error.t()}
Get aggregate stats for a session's artifacts.