Skip to content
Français

DecisionTaskOptions

import type { DecisionTaskOptions } from "@elie-laloum/outpost";
  • retryOptional
    Retry | undefined
    Retry policy for failed attempts; without it the task runs once. A retried attempt repeats its side effects.
  • cacheOptional
    TaskCacheOptions | undefined
    Result cache: a hit restores the stored lossless JSON value with no attempt, usage or side effects. On a miss, a result that is not lossless JSON fails the task. Rejected on gates, interactions and dispatch-result tasks.
  • keyRequired
    string
    Unique key in the workflow, matching [A-Za-z0-9][A-Za-z0-9._-]*. Records, events and checkpoints identify the task by it.
  • afterOptional
    readonly Task<unknown>[] | undefined
    Tasks that must be done before this one starts, default none; only these can be read with context.value().
  • conditionOptional
    ((context: TaskContext) => boolean | Promise<boolean>) | undefined
    Evaluated with attempt 0 before the task runs, including when a later start() resumes it; false ends the task as skipped, which skips its dependents.
  • timeoutMsOptional
    number | undefined
    Deadline in milliseconds for each attempt, a positive integer up to 2147483647. Expiry aborts context.signal and fails the attempt, which retry may repeat.
  • decisionRequired
    Decision<Q>
    Frozen typed question declaration created with defineDecision.
  • modelRequired
    string
    Nonempty decision model name, without generation or reasoning settings.
  • providerRequired
    DecisionProvider
    Decision provider that performs this evaluation.
  • allowTruncatedOptional
    boolean | undefined
    False by default; true accepts a reported truncation while retaining its flag in the result.
  • stateRequired
    DecisionState | ((context: TaskContext) => DecisionState | Promise<DecisionState>)
    Static lossless JSON state or a synchronous/asynchronous TaskContext callback, resolved on each executed attempt.
export type DecisionTaskOptions<
  Q extends DecisionQuestions = DecisionQuestions,
> = Omit<TaskOptions<DecisionResult<Q>>, "perform" | "gate" | "interaction"> &
  Omit<DecideOptions<Q>, "state" | "signal" | "observation"> & {
    readonly state:
      | DecisionState
      | ((context: TaskContext) => DecisionState | Promise<DecisionState>);
  };