# Models: B

> API models starting with B.

## `Baseline`

What the candidate was compared with: `recorded` (the test set's recorded runs, with the versions that served them), or another version.

- `kind: Literal['recorded']`
- `versions: list[kindgi.client.Version]`

## `Baseline1`

What the candidate was compared with: `recorded` (the test set's recorded runs, with the versions that served them), or another version.

- `kind: Literal['version']`
- `agent_id: str` (`agentId` on the wire)
- `version: str`
- `via: Literal['explicit', 'live']`
- `live_scope: dict[str, Any] | None` (`liveScope` on the wire) (optional)

## `Baseline2`

An output's score: Σ yesWeight and Σ totalWeight over its judged items, and over those among the first `k` ranked items.

- `yes_weight: float` (`yesWeight` on the wire)
- `total_weight: float` (`totalWeight` on the wire)
- `items: int`
- `judged_items: int` (`judgedItems` on the wire)
- `top_k: kindgi.client.TopK` (`topK` on the wire)
- `fresh: kindgi.client.Fresh | None` (optional)

## `Binding`

- `root: str`

## `BlobMeta`

- `blob_id: str` (`blobId` on the wire)
- `tenant_id: uuid.UUID` (`tenantId` on the wire)
- `name: str`
- `content_type: str` (`contentType` on the wire)
- `size: int`
- `hash: str`
- `tags: dict[str, str]`
- `owner_run_id: uuid.UUID | None` (`ownerRunId` on the wire) (optional)
- `project_id: str | None` (`projectId` on the wire) (optional)
- `created_by: str | None` (`createdBy` on the wire) (optional)
- `created_at: AwareDatetime` (`createdAt` on the wire)

## `Block`

A data block version: a prompt or settings, versioned like a tool (immutable versions, soft unregister). An agent version pins the block versions it uses when it is published. Belongs to one project and is authorized through it.

- `id: str`
- `version: str`
- `kind: Union[Literal['prompt', 'settings'], str]`
- `description: str | None` (optional)
- `content: kindgi.client.PromptBlockContent | kindgi.client.SettingsBlockContent`
- `project_id: uuid.UUID` (`projectId` on the wire)
- `published_at: AwareDatetime` (`publishedAt` on the wire)
- `unregistered_at: AwareDatetime | None` (`unregisteredAt` on the wire) (optional)

## `BlockCollectionPage`

- `data: list[kindgi.client.Block]`
- `next_cursor: str | None` (`nextCursor` on the wire) (optional)
- `has_more: bool` (`hasMore` on the wire)

## `BlockRef`

A settings block an agent reads, by id and semver range.

- `id: str`
- `version: str`

## `Budget`

- `max_cost_usd: float | None` (`maxCostUsd` on the wire) (optional)
- `max_latency_ms: int | None` (`maxLatencyMs` on the wire) (optional)

## `Budget2`

Default: $5 and 30 candidates.

- `max_cost_usd: float | None` (`maxCostUsd` on the wire) (optional)
- `max_candidates: int | None` (`maxCandidates` on the wire) (optional)

## `Budget3`

Each pass's budget (default $5 and 30 candidates), never more than what's left of the month's cap.

- `max_cost_usd: float | None` (`maxCostUsd` on the wire) (optional)
- `max_candidates: int | None` (`maxCandidates` on the wire) (optional)

## `BuildJudgedSuiteBody`

Name the agent (`agentId`) or the flow (`flowId`) whose judged runs to use.

- `version: str`
- `project_id: str` (`projectId` on the wire)
- `agent_id: str | None` (`agentId` on the wire) (optional)
- `agent_version: str | None` (`agentVersion` on the wire) (optional)
- `flow_id: str | None` (`flowId` on the wire) (optional)
- `since: AwareDatetime | None` (optional)
- `until: AwareDatetime | None` (optional)
- `judge_class_ids: list[kindgi.client.JudgeClassId] | None` (`judgeClassIds` on the wire) (optional)
- `min_judgments: int | None` (`minJudgments` on the wire) (optional)
- `segments: list[kindgi.client.ScopeSegment] | None` (optional)
- `description: str | None` (optional)

## `BuildJudgedSuiteResult`

- `suite_id: str` (`suiteId` on the wire)
- `version: str`
- `kind: Union[Literal['judged'], str]`
- `case_count: int` (`caseCount` on the wire)
- `truncated: bool`
