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

# DecisionModel

> A hosted decisions model (Jev).

A hosted decisions model (Jev). Construction mirrors the other simulang
service models (\[`DecisionModel.default`], \[`DecisionModel.byAlias`]);
the one entry point for work is \[`DecisionModel.decide`].

## Constructor

```typescript
DecisionModel(): DecisionModel
```

### Returns

<code>[DecisionModel](/simulang-js/api/v14.0.0/classes/DecisionModel)</code>

## Properties

<ResponseField name={"name"} type={"string"} required>
  The model identifier from provider configuration.
</ResponseField>

## Methods

### availableAliases()

```typescript
availableAliases(): string[]
```

Every decisions model alias advertised by the loaded configuration,
deduplicated and sorted alphabetically.

#### Returns

`string[]`

### byAlias()

```typescript
byAlias(alias: string): DecisionModel
```

Resolve a model alias against the loaded configuration.
Throws if the alias is unknown.

#### Parameters

<ResponseField name={"alias"} type={"string"} required />

#### Returns

<code>[DecisionModel](/simulang-js/api/v14.0.0/classes/DecisionModel)</code>

### checkAuth()

```typescript
checkAuth(): void
```

Check that provider credentials work. Throws (and logs a warning) if
they do not.

### decide()

```typescript
decide(state: string | any[] | Record<string, any>, questions: Q): unknown & { usage: null | TokenUsage }
```

Answer every named question against one state, in one request.
Separate calls send and bill that state again.

Each name is a property of the result (`answers.urgent.probability`).
`answers.usage` is the token usage, or `null`. `usage` is reserved.
A string state is text. An object or array is structured data.
A Choice with one option is answered locally, at probability 1.

#### Parameters

<ResponseField name={"state"} type={"string | any[] | Record<string, any>"} required />

<ResponseField name={"questions"} type={"Q"} required />

#### Returns

<code>{"unknown & { usage: null | "}[TokenUsage](/simulang-js/api/v14.0.0/interfaces/TokenUsage){" }"}</code>

### default()

```typescript
default(): DecisionModel
```

First decisions model advertised by the first capable provider in the
loaded configuration whose credentials are currently available.
Throws if no provider remains available.

#### Returns

<code>[DecisionModel](/simulang-js/api/v14.0.0/classes/DecisionModel)</code>

### maxChoiceOptions()

```typescript
maxChoiceOptions(): number
```

Cap on options per Choice question: the provider's
`max_choice_options`, or 255.

#### Returns

`number`

### maxScoreLevels()

```typescript
maxScoreLevels(): number
```

Cap on levels per Score question: the provider's `max_score_levels`,
or 10.

#### Returns

`number`

### openrouterJev()

```typescript
openrouterJev(): DecisionModel
```

Convenience shim for the bundled `OpenRouter` Jev alias (BYO
`OPENROUTER_API_KEY`).

#### Returns

<code>[DecisionModel](/simulang-js/api/v14.0.0/classes/DecisionModel)</code>
