Skip to content

storage:turn

FieldValue
Prefixstorage:turn
Namespace constantTurnStorageNamespace
Subjects constantTurnStorageSubjects
Kindstorage
Schema recordTurnStorageSchemas
Tierframework
Package@makaio/services-core
Defined inpackages/services/core/src/turn/namespace.ts
KeyWireTypeSchema
completestorage:turn.completerpcschemas.ts
createstorage:turn.createrpcschemas.ts
getstorage:turn.getrpcschemas.ts
getActivestorage:turn.getActiverpcschemas.ts
getBySessionstorage:turn.getBySessionrpcschemas.ts
listActivestorage:turn.listActiverpcschemas.ts
setstorage:turn.setrpcschemas.ts

Complete a turn (mark as completed or error).

Subject: storage:turn.complete Type: Request (RPC)

Request:

FieldTypeRequired
errorstring | undefinedno
expectedStatus"error" | "active" | "completed" | undefinedno
status"error" | "completed"yes
turnIdstringyes
usage{ total: { inputTokens: number; outputTokens: number; cost?: number | undefined; }; byAgent?: Record<string, { inputTokens: number; outputTokens: number; cost?: number | undefined; }> | undefined; } | undefinedno

Response:

FieldTypeRequired
transitionedbooleanyes
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

Create a new turn.

Subject: storage:turn.create Type: Request (RPC)

Request:

FieldTypeRequired
sessionIdstringyes
turnIdstring | undefinedno

Response:

FieldTypeRequired
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

Get a turn by ID.

Subject: storage:turn.get Type: Request (RPC)

Request:

FieldTypeRequired
turnIdstringyes

Response:

FieldTypeRequired
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; } | nullyes

Get the active turn for a session (if any).

Subject: storage:turn.getActive Type: Request (RPC)

Request:

FieldTypeRequired
sessionIdstringyes

Response:

FieldTypeRequired
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; } | nullyes

List turns for a session.

Subject: storage:turn.getBySession Type: Request (RPC)

Request:

FieldTypeRequired
limitnumber | undefinedno
sessionIdstringyes
status"error" | "active" | "completed" | undefinedno

Response:

FieldTypeRequired
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

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:

FieldTypeRequired
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

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:

FieldTypeRequired
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:

FieldTypeRequired
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.