> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.AgentSessionState.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface AgentSessionState

```typescript
interface AgentSessionState {
    agent: "claude" | "codex" | "opencode" | "pi" | "cursor" | "ispo";
    controllerProjectId?: string;
    controlState: "revoked" | "irrecoverable" | "resumable" | "readable-only";
    effort?: string;
    executionClass: AgentExecutionClass;
    model: string;
    parentSessionId?: string;
    projectId: string;
    projectName?: string;
    sessionId: string;
    stateRevision: number;
    status: AgentSessionStatus;
    turnCount: number;
    updatedAt: string;
    workload: AgentSessionWorkload;
}
```

Types: [agent](#agent), [controllerProjectId](#controllerprojectid), [controlState](#controlstate), [effort](#effort), [executionClass](#executionclass), [AgentExecutionClass](../types/core.AgentExecutionClass.md), [model](#model), [parentSessionId](#parentsessionid), [projectId](#projectid), [projectName](#projectname), [sessionId](#sessionid), [stateRevision](#staterevision), [status](#status), [AgentSessionStatus](../types/core.AgentSessionStatus.md), [turnCount](#turncount), [updatedAt](#updatedat), [workload](#workload), [AgentSessionWorkload](../types/core.AgentSessionWorkload.md)

##### Index

### <a id="properties"></a>Properties

[agent](#agent) [controllerProjectId?](#controllerprojectid) [controlState](#controlstate) [effort?](#effort) [executionClass](#executionclass) [model](#model) [parentSessionId?](#parentsessionid) [projectId](#projectid) [projectName?](#projectname) [sessionId](#sessionid) [stateRevision](#staterevision) [status](#status) [turnCount](#turncount) [updatedAt](#updatedat) [workload](#workload)

## <a id="properties-1"></a>Properties

### <a id="agent"></a>agent

```typescript
agent: "claude" | "codex" | "opencode" | "pi" | "cursor" | "ispo"
```

### <a id="controllerprojectid"></a>`Optional`controllerProjectId

```typescript
controllerProjectId?: string
```

Authenticated project that owns the protected controller binding. Absent only for a host-user-controlled session outside the project RPC surface.

### <a id="controlstate"></a>controlState

```typescript
controlState: "revoked" | "irrecoverable" | "resumable" | "readable-only"
```

Durable controller restoration state. Only `resumable` accepts control.

### <a id="effort"></a>`Optional`effort

```typescript
effort?: string
```

### <a id="executionclass"></a>executionClass

```typescript
executionClass: AgentExecutionClass
```

Types: [AgentExecutionClass](../types/core.AgentExecutionClass.md)

### <a id="model"></a>model

```typescript
model: string
```

### <a id="parentsessionid"></a>`Optional`parentSessionId

```typescript
parentSessionId?: string
```

### <a id="projectid"></a>projectId

```typescript
projectId: string
```

Target project whose root, policy, grants, and agent authority apply.

### <a id="projectname"></a>`Optional`projectName

```typescript
projectName?: string
```

Bounded host-resolved target label. Absent after target removal.

### <a id="sessionid"></a>sessionId

```typescript
sessionId: string
```

### <a id="staterevision"></a>stateRevision

```typescript
stateRevision: number
```

### <a id="status"></a>status

```typescript
status: AgentSessionStatus
```

Types: [AgentSessionStatus](../types/core.AgentSessionStatus.md)

### <a id="turncount"></a>turnCount

```typescript
turnCount: number
```

### <a id="updatedat"></a>updatedAt

```typescript
updatedAt: string
```

### <a id="workload"></a>workload

```typescript
workload: AgentSessionWorkload
```

Types: [AgentSessionWorkload](../types/core.AgentSessionWorkload.md)
