<!-- source-hash: 75abfd053b43306b990d3311c7dd4813 -->
Resolves a status string to an abstract color scheme name for use in `StatusBadge` components across job, ClickUp task, and log-level status surfaces.

## Key Components

| Export | Type | Description |
|--------|------|-------------|
| `ColorScheme` | `type` | Union type: `'success' \| 'error' \| 'warning' \| 'cyan' \| 'default'` |
| `getStatusColorScheme` | `function` | Maps a status string to a `ColorScheme` value |

### Resolution Strategy

`getStatusColorScheme` applies a two-pass lookup:

1. **Exact match** — case-sensitive switch on common statuses
2. **Partial match** — lowercase substring checks for ClickUp-style freeform statuses (e.g. `"In Progress"`, `"Complete"`)

| ColorScheme | Matched statuses |
|-------------|-----------------|
| `success` | `completed`, `success`, `active`, `*complete*`, `*done*` |
| `error` | `failed`, `failure`, `cancelled`, `error`, `*blocked*`, `*failed*` |
| `cyan` | `running`, `processing`, `closed`, `*review*` |
| `warning` | `pending`, `warning`, `*working*`, `*progress*` |
| `default` | `draft`, `info`, or any unmatched value |

## Usage Example

```typescript
import { getStatusColorScheme } from './agent-status-message'

// Exact match
getStatusColorScheme('completed')   // → 'success'
getStatusColorScheme('failed')      // → 'error'
getStatusColorScheme('running')     // → 'cyan'

// Partial match (ClickUp-style)
getStatusColorScheme('In Progress') // → 'warning'
getStatusColorScheme('Done')        // → 'success'
getStatusColorScheme('Code Review') // → 'cyan'

// Consumed by StatusBadge
<StatusBadge colorScheme={getStatusColorScheme(task.status)} label={task.status} />
```

> **Note:** This is the lib-side subset of the hub's `agent-status-message.ts`. CSS class resolvers and the `AgentStatusMessage` SSE builder live hub-side, as they reference hub-only ODS class names.