storage:turn
storage:turn
Section titled “storage:turn”| Field | Value |
|---|---|
| Prefix | storage:turn |
| Namespace constant | TurnStorageNamespace |
| Subjects constant | TurnStorageSubjects |
| Kind | storage |
| Schema record | TurnStorageSchemas |
| Tier | framework |
| Package | @makaio/services-core |
| Defined in | packages/services/core/src/turn/namespace.ts |
Subjects
Section titled “Subjects”| Key | Wire | Type | Schema |
|---|---|---|---|
complete | storage:turn.complete | rpc | schemas.ts |
create | storage:turn.create | rpc | schemas.ts |
get | storage:turn.get | rpc | schemas.ts |
getActive | storage:turn.getActive | rpc | schemas.ts |
getBySession | storage:turn.getBySession | rpc | schemas.ts |
listActive | storage:turn.listActive | rpc | schemas.ts |
set | storage:turn.set | rpc | schemas.ts |
Subject Details
Section titled “Subject Details”storage:turn.complete (rpc)
Section titled “storage:turn.complete (rpc)”Complete a turn (mark as completed or error).
Subject: storage:turn.complete
Type: Request (RPC)
Request:
| Field | Type | Required |
|---|---|---|
error | string | undefined | no |
expectedStatus | "error" | "active" | "completed" | undefined | no |
status | "error" | "completed" | yes |
turnId | string | yes |
usage | { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined | no |
Response:
| Field | Type | Required |
|---|---|---|
transitioned | boolean | yes |
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | yes |
storage:turn.create (rpc)
Section titled “storage:turn.create (rpc)”Create a new turn.
Subject: storage:turn.create
Type: Request (RPC)
Request:
| Field | Type | Required |
|---|---|---|
sessionId | string | yes |
turnId | string | undefined | no |
Response:
| Field | Type | Required |
|---|---|---|
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | yes |
storage:turn.get (rpc)
Section titled “storage:turn.get (rpc)”Get a turn by ID.
Subject: storage:turn.get
Type: Request (RPC)
Request:
| Field | Type | Required |
|---|---|---|
turnId | string | yes |
Response:
| Field | Type | Required |
|---|---|---|
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | null | yes |
storage:turn.getActive (rpc)
Section titled “storage:turn.getActive (rpc)”Get the active turn for a session (if any).
Subject: storage:turn.getActive
Type: Request (RPC)
Request:
| Field | Type | Required |
|---|---|---|
sessionId | string | yes |
Response:
| Field | Type | Required |
|---|---|---|
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | null | yes |
storage:turn.getBySession (rpc)
Section titled “storage:turn.getBySession (rpc)”List turns for a session.
Subject: storage:turn.getBySession
Type: Request (RPC)
Request:
| Field | Type | Required |
|---|---|---|
limit | number | undefined | no |
sessionId | string | yes |
status | "error" | "active" | "completed" | undefined | no |
Response:
| Field | Type | Required |
|---|---|---|
turns | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; }[] | yes |
storage:turn.listActive (rpc)
Section titled “storage:turn.listActive (rpc)”List all active turns across all sessions.
Used at startup to identify orphaned turns left active after a process crash.
No session filter — returns every turn with status 'active'.
Subject: storage:turn.listActive
Type: Request (RPC)
Request:
Empty object.
Response:
| Field | Type | Required |
|---|---|---|
turns | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; }[] | yes |
storage:turn.set (rpc)
Section titled “storage:turn.set (rpc)”Store or update a turn with full data.
Subject: storage:turn.set
Type: Request (RPC)
Used for imports and backfills that need to preserve timestamps/usage.
Request:
| Field | Type | Required |
|---|---|---|
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | yes |
Response:
| Field | Type | Required |
|---|---|---|
turn | { turnId: string; sessionId: string; turnNumber: number; startedAt: number; status: "error" | "active" | "completed"; completedAt?: number | undefined; error?: string | undefined; usage?: { total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefined; } | yes |
Auto-generated by yarn docs:bus. Do not edit manually.