Skip to content
Français

TaskRecord

import type { TaskRecord } from "@elie-laloum/outpost";
  • cacheHitOptional
    true | undefined
    true when the task value was restored from its task cache in this execution; the task then has zero attempts.
  • quotaOptional
    WorkflowQuotaPause | undefined
    Persisted quota pause of a paused task: when it was recorded, the quota message and the reset time when known. Removed when the task runs again.
  • interactionOptional
    TaskInteractionRecord | undefined
    Persisted continuation state, latest question and accepted answer for an interactive task.
  • roundsOptional
    readonly LoopRoundRecord[] | undefined
    Ordered progress of a loop task, including completed rounds and the current phase; absent for ordinary tasks.
  • usageReceiptsOptional
    readonly string[] | undefined
    Persisted receipt IDs that prevent repeated accounting of the same usage report.
  • pauseOptional
    WorkflowPauseRequest | undefined
    Persisted pending gate request, including its unique ID and authorized actors.
  • decisionOptional
    WorkflowDecisionRecord | undefined
    Validated decision recorded for the task’s gate.
  • keyRequired
    string
    Stable task key identifying the node within its workflow graph.
  • statusRequired
    TaskStatus
    Task state: waiting, active, done, failed, skipped, cancelled, paused (gate or quota), rejected or waiting-input.
  • attemptsRequired
    number
    Attempts started, cumulative across retries and checkpoint resumes; 0 for a skipped task or a cache hit.
  • startedAtOptional
    string | undefined
    ISO timestamp of the task’s latest start.
  • finishedAtOptional
    string | undefined
    ISO timestamp when the task reached its current status, including paused and waiting-input.
  • errorOptional
    string | undefined
    Message of the error that failed or cancelled the task, or of its gate rejection.
export interface TaskRecord {
  cacheHit?: true;
  quota?: WorkflowQuotaPause;
  interaction?: TaskInteractionRecord;
  rounds?: readonly LoopRoundRecord[];
  usageReceipts?: readonly string[];
  pause?: WorkflowPauseRequest;
  decision?: WorkflowDecisionRecord;
  readonly key: string;
  status: TaskStatus;
  attempts: number;
  startedAt?: string;
  finishedAt?: string;
  error?: string;
}