# `ASM.Extensions.ProviderSDK.Cursor`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.10.0/lib/asm/extensions/provider_sdk/cursor.ex#L1)

Discovery metadata and strict derivation helpers for the optional
Cursor-native ASM extension namespace.

Cursor's SDK lane is enabled once `cursor_cli_sdk` is present. Core-lane
Cursor execution remains owned by `CliSubprocessCore.ProviderProfiles.Cursor`.

# `available?`

```elixir
@spec available?() :: boolean()
```

# `derive_options`

```elixir
@spec derive_options(keyword(), keyword()) :: {:ok, struct()} | {:error, term()}
```

Derives `CursorCliSdk.Options` from strict common ASM options.

Cursor-native controls such as `:mode`, `:sandbox`, `:approve_mcps`,
worktree flags, plugin directories, and headers belong in `:native_overrides`.

# `extension`

```elixir
@spec extension() :: ASM.Extensions.ProviderSDK.Extension.t()
```

# `native_capabilities`

```elixir
@spec native_capabilities() :: [atom()]
```

# `native_surface_modules`

```elixir
@spec native_surface_modules() :: [module()]
```

# `sdk_app`

```elixir
@spec sdk_app() :: atom()
```

# `sdk_module`

```elixir
@spec sdk_module() :: module()
```

---

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