# resolveSignalValue

`resolveSignalValue(value)` returns a plain value unchanged or reads one Pibbl
signal with `get()`. It resolves exactly one level: it does not inspect arrays,
objects, functions, or a signal returned by another signal.

When called during component evaluation, the receiving component owns the
dependency. Outside a tracked evaluation it behaves like an ordinary snapshot
read.

Related types: [`Signal`](/reference/types/canvas-runtime/#signal) and
[`SignalValue`](/reference/types/signal-inputs/#signalvalue).

## API details from source

<span id="api-resolveSignalValue"></span>

Returns a literal input unchanged or reads its current value when it is a Pibbl signal.

```ts
resolveSignalValue: <T>(value: SignalValue<T>) => T
```

Related API: [resolveSignalValue](/reference/functions/resolve-signal-value/), [SignalValue](/reference/types/signal-inputs/#signalvalue).

### Parameters

- **`value`** — Literal value or signal to read. See [SignalValue](/reference/types/signal-inputs/#signalvalue).

### Returns

The literal value, or the signal's current value.

### See also

[SignalValue](/reference/types/signal-inputs/#signalvalue)

[View source — packages/core/src/lib/signals/resolve-signal-value.ts:16](/source/packages/core/src/lib/signals/resolve-signal-value-ts/#L16)

## Implementation guidance for agents

Read the [Authoring, signals, and lifecycle companion](/agents/topics/lifecycle/) for ownership, adaptation, failure modes, and verification. [Agent start](/agents/) provides the version-selection workflow.

## Complete minimal examples

- [Read and update signals](/minimal-examples/lifecycle/signals/): Use writable, readonly, and computed values with synchronous batching. [Plain source](/minimal/lifecycle/signals.ts)
## Documentation version

Documentation built with @pibbl/core 0.0.2, revision 272a94a. ALPHA — NOT FOR PRODUCTION USE.
