/** * `weft.tasks.get` operation + REST binding (WFT-92). * * Reads the full durable ledger state for one `operationId` — the wire * counterpart to `WeftServer.getTaskResult()`, which is same-process-only * (`src/server/runtime/task-result-view.ts`). This operation exposes the * complete dispatch envelope and current ledger state so an HTTP/JSON-RPC * caller — an operator console, for instance — can render one task's * authoritative state without reconstructing it from the bounded * `weft.tasks.diagnostics` alerting shape, which deliberately collapses * `leased`/`completing`/`cancelling` into one `inflight` value and carries * no attempt identity, priority, headers, retry-availability, adoption, or * retention evidence. * * **Excluded fields.** `attemptToken`, `workerSessionId`, and * `executionIdentity` are never projected here, matching * `TaskResultView`'s own documented exclusion list — they are worker * ownership/session internals with no business being public. `headers` * are summarized as key names only (`headerKeys`): interceptor headers can * carry trace context or auth material, and this is a read surface, not a * payload inspector. The task `input` value and a dead-lettered record's * pending result `value` are omitted for the same "digest not value" * reason `TaskResultView` omits a resolved result's value — the ledger * proves which attempt won, it does not re-deliver payloads. `resultDigest` * is only projected for `disposition: 'resolved'`: the `cancelled` * (mid-attempt) and `retryExhausted` lineages store a synthetic * `${disposition}:${operationId}:${attemptToken}` placeholder there instead * of a real content hash (`task-ledger-transitions(-cancellation).ts`), * which would otherwise leak the excluded `attemptToken` verbatim. * * **Read-only by design.** This issue deliberately does not add an HTTP * path to `adoptTaskResultImpl`. WFT-24 describes adoption as "an explicit * caller assertion" that a workflow incorporated a result — a browser * operator clicking a button cannot honestly make that assertion. If an * HTTP adoption path is ever wanted, it needs its own design discussion, * not a bundled addition here. * * @module server/operations/get-task-detail */ import type { UnknownRestBinding } from '../rest-bindings.ts'; export { executionRequirementSchema, getTaskDetailOutputSchema, retryPolicySchema, type GetTaskDetailInput, type GetTaskDetailOutput, } from './get-task-detail-schema.ts'; export declare const getTaskDetailOperation: import("../operation-catalog.ts").OperationDefinition<{ operationId: string; }, { disposition: "resolved"; resultDigest: string; resultStatus: "completed" | "failed"; state: "terminal"; terminalAt: number; adopted: boolean; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; error?: string | undefined; adoptedAt?: number | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { disposition: "cancelled"; cancellationReason: string; state: "terminal"; terminalAt: number; adopted: boolean; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; adoptedAt?: number | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { disposition: "retryExhausted"; error: string; state: "terminal"; terminalAt: number; adopted: boolean; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; adoptedAt?: number | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { state: "queued"; availableAt: number; firstQueuedAt: number; lastQueuedAt: number; retryCount: number; requeueCount: number; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; lastDispatchedAt?: number | undefined; startedAt?: number | undefined; lastRequeueReason?: string | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { leaseDeadline: number; firstQueuedAt: number; lastQueuedAt: number; startedAt: number; lastHeartbeatAt: number; state: "leased"; retryCount: number; requeueCount: number; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; lastRequeueReason?: string | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { pendingStatus: "completed" | "failed"; resultDigest: string; leaseDeadline: number; firstQueuedAt: number; lastQueuedAt: number; startedAt: number; lastHeartbeatAt: number; state: "completing"; retryCount: number; requeueCount: number; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; lastRequeueReason?: string | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { cancellationReason: string; cancellationRequestedAt: number; leaseDeadline: number; firstQueuedAt: number; lastQueuedAt: number; startedAt: number; lastHeartbeatAt: number; state: "cancelling"; retryCount: number; requeueCount: number; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; lastRequeueReason?: string | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; } | { state: "deadLettered"; pendingStatus: "completed" | "failed"; resultDigest: string; deadLetteredAt: number; persistenceFailureReason: string; retryCount: number; requeueCount: number; operationId: string; workflowType: string; activityName: string; queue: string; headerKeys: string[]; visibilityTimeoutMilliseconds: number; createdAt: number; attempt: number; error?: string | undefined; lastRequeueReason?: string | undefined; workflowId?: string | undefined; workflowExecutionToken?: string | undefined; workflowRevision?: string | undefined; priority?: number | undefined; retryPolicy?: { maxAttempts: number; initialBackoff: string | number; backoffMultiplier: number; maxBackoff: string | number; nonRetryableErrors?: string[] | undefined; } | undefined; scheduleToCloseDeadline?: number | undefined; executionRequirement?: { deploymentName?: string | undefined; buildId?: string | undefined; artifactDigest?: string | undefined; workflowRevision?: string | undefined; activityContractHash?: string | undefined; } | undefined; fairShareKey?: string | undefined; stickyWorkflowId?: string | undefined; }, unknown>; export declare const getTaskDetailRestBinding: UnknownRestBinding;