/** * Shared result types and field pickers for the durable remote task ledger's * pure conditional-transition functions (WFT-25) — split out of * `task-ledger-transitions.ts` / `task-ledger-transitions-cancellation.ts` * purely to keep both under this repository's file-size ceiling; there is no * behavioral reason to import this module directly instead of one of those. * * @module server/task-ledger-transition-helpers */ import type { WorkerExecutionIdentity } from '../worker/manifest/types.ts'; import type { RemoteTaskAttemptFields, RemoteTaskBase } from './task-ledger-types.ts'; export type TaskLedgerTransitionResult = Readonly<{ ok: true; nextRecord: T; }> | Readonly<{ ok: false; reason: string; }>; export type TaskLedgerPreconditionResult = Readonly<{ ok: true; }> | Readonly<{ ok: false; reason: string; }>; export declare function pickBase(record: RemoteTaskBase): RemoteTaskBase; export declare function pickAttemptFields(record: RemoteTaskAttemptFields): RemoteTaskAttemptFields; export type LeaseHolderFields = Readonly<{ attemptToken: string; workerSessionId: string; executionIdentity?: WorkerExecutionIdentity; attempt: number; leaseDeadline: number; firstQueuedAt: number; lastQueuedAt: number; startedAt: number; lastHeartbeatAt: number; }>; export declare function pickLeaseHolderFields(record: LeaseHolderFields): LeaseHolderFields;