# `ASM.Extensions.Workspace`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.9.2/lib/asm/extensions/workspace.ex#L1)

Public workspace extension API.

This domain provides workspace snapshot/diff/rollback primitives for
host-managed run orchestration without coupling core runtime internals.

# `backend_kind`

```elixir
@type backend_kind() :: :auto | :git | :hash
```

Configured backend selection strategy.

# `diff_result`

```elixir
@type diff_result() ::
  {:ok, ASM.Extensions.Workspace.Diff.t()} | {:error, ASM.Error.t()}
```

Workspace diff operation result.

# `rollback_result`

```elixir
@type rollback_result() :: :ok | {:error, ASM.Error.t()}
```

Workspace rollback operation result.

# `snapshot_result`

```elixir
@type snapshot_result() ::
  {:ok, ASM.Extensions.Workspace.Snapshot.t()} | {:error, ASM.Error.t()}
```

Workspace snapshot operation result.

# `diff`

```elixir
@spec diff(
  ASM.Extensions.Workspace.Snapshot.t(),
  ASM.Extensions.Workspace.Snapshot.t(),
  keyword()
) ::
  diff_result()
```

# `rollback`

```elixir
@spec rollback(
  ASM.Extensions.Workspace.Snapshot.t(),
  keyword()
) :: rollback_result()
```

# `snapshot`

```elixir
@spec snapshot(
  String.t(),
  keyword()
) :: snapshot_result()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
